• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Просмотрщик картинок

  • Автор темы VLGENERAL
  • Дата начала
V

VLGENERAL

Здравствуйте!
посоветуйте, как реализовать просмотр картинок в режиме 'эскизы страниц' для форматов .ai, .bmp, .cdr, .eps, .jpg, .psd, .tif, .wmf.
Имеется бд с адресом каждого файла.
Спасибо!
 
D

Dock1100

Можно грузить файл и выводить на канву StretchDraw,только надо будет найти модули для работы с .ai, .cdr, .eps, .psd, .tif.
Пример для bmp и .jpg
Код:
uses jpeg;
..........
var bmp:Tbitmap;
jpg:TJpegimage;

procedure Tform1.FormCreate(Sender: TObject); //OnCreate
begin
bmp:=TBitmap.create;
jpg:=TJpegimage.create;
end;

procedure DrawImage(Canvas:TCanvas; way:string; x1,y1,x2,y2:integer);
var s:string;
begin
s:=extractfileext(way);
case lowercase(s) of
'.bmp' : begin bmp.loadfromfile(way); canvas.StretchDraw(bounds(x1,y1,x2-x1,y2-y1),bmp); end;
'.jpg' : begin jpg.loadfromfile(way); canvas.StretchDraw(bounds(x1,y1,x2-x1,y2-y1),jpg); end;
'.jpeg' : begin jpg.loadfromfile(way); canvas.StretchDraw(bounds(x1,y1,x2-x1,y2-y1),jpg); end;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then DrawImage(Image1.canvas,opendialog1.filename,10,10,110,110);
end;
 
V

VahaC

Dock1100
а почему не сделать просто

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then Image1.LoadFromFile(opendialog1.filename);
end;
 
V

VLGENERAL

отображаю через imagelist и listview
код:

procedure FillListView(path: string; mask: string );
var
sr: TSearchRec;
img: TPicture;
bmp: TBitmap;
pic: TBitMap;
begin
img := TPicture.Create;
bmp := TBitMap.Create;
pic := TBitMap.Create;
img.LoadFromFile(form1.Table.FieldByName('папка').AsString
+ form1.Table.FieldByName('имя').AsString);
bmp.Assign(img.Graphic);
pic.Width := form1.ImageList1.Width;
pic.Height:= form1.ImageList1.Height;
pic.Canvas.StretchDraw(Rect(0,0,pic.Width, pic.Height), bmp);
form1.ImageList1.Add(pic, nil);
with form1.ListView1.Items.Add do
begin
Caption := form1.Table.FieldByName('имя').AsString;
ImageIndex := form1.ListView1.Items.Count-1;
end;
img.Free; bmp.Free; pic.Free;
end;

в цикле вывожу на ListView
не отображает векторные форматы(.ai, .cdr, .eps, ) и .wmf
 
V

VLGENERAL

Нашел библиотеку GflSDK(http://download.xnview.com/GflSDKSetup.exe)
там в демке можно выбирать формат ai и eps. У меня загружает только некоторые eps.про ai пишет, что формат неизвестный.посмотрите что нужно там добавить чтобы демка грузила эти форматы
 
I

ignessa

Привет...помогите,пожалуйста...нужно сделать анимацию " ползающая божья коровка" или "летающий самолет"...в общем любую анимацию в движении в delphi 7...надо описать на языке программирования всю последовательность действий
 
V

VLGENERAL

для чтения форматов ai, eps использовал библиотеку GflSDK(http://www.xnview.com/en/download_gfl.html) дополнительно нужно установить Ghostscript(http://ghostscript.com/releases/). Библиотека читает более 100 форматов, за исключением cdr. В демке есть пример загрузки изображения в image.
Всем спасибо!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!