Як створювати thumbnails для великих зображень?
а StretchBlt пробував?
да, швидкість та ж
в тому то і проблема
> [2] idiliya # XA0; (19.12.04 17:05)
Якщо jpeg, то попрацюй спочатку з параметрами завантаження - 1/8 розміру, швидкість понад якості. А потім як зазначено в [1].
procedure TForm1.Button1Click (Sender: TObject);
var
# XA0; a: TJPEGImage;
begin
# XA0; if OpenDialog1.Execute then
# XA0; # XA0; begin
# XA0; # XA0; # XA0; a: = TJPEGImage.Create;
# XA0; # XA0; # XA0; try
# XA0; # XA0; # XA0; # XA0; a.Scale: = jsEighth;
# XA0; # XA0; # XA0; # XA0; a.Performance: = jpBestSpeed;
# XA0; # XA0; # XA0; # XA0; a.LoadFromFile (OpenDialog1.FileName);
# XA0; # XA0; # XA0; # XA0; Image1.Picture.Assign (a); // можна замінити на StretchBlt
# XA0; # XA0; # XA0; finally
# XA0; # XA0; # XA0; # XA0; a.Free;
# XA0; # XA0; # XA0; end;
# XA0; # XA0; end;
end;
за суб'єктивними відчуттями все той же :(
П.С.
Я її використовую для виведення зображень 5880x5880 пікселів з дозволом 300 dpi (50x50 см). TImage і стандартна канва бітмапами загинається, а з gdiplus - літає. І Thumbnails.
1. під XP були знайдені і швидкі COM об'єкти для цього.
2. оскільки займалися і DX DShow. то і звідти можна швидше зробити. але не можна
потрібно від 98. і далі
слава богу що ні від 95 (там дописи Hover потрібні)
procedure TForm1.FormCreate (Sender: TObject);
begin
# XA0; if Image1.Picture.Graphic is TJPEGImage then
# XA0; begin
# XA0; # XA0; TJPEGImage (Image1.Picture.Graphic) .DIBNeeded;
# XA0; end;
end;
Даний код змушує явно і відразу декодувати jpeg, замість того, щоб робити це при відображенні картинки
delphiworld.narod.ru
Робив свій фотоальбом, користувався GDI + працює і на 98 треба тільки з програмою носити цю ДЛЛ, працює швидко, але краще зберігати два зображення.
з GDI + почало поволі виходити
idiliya # XA0; (20.12.04 11:12) [15]
з GDI + почало поволі виходити
так бисть або потихеньку?) просто сам щас викачав загловочние файли для гди +, тож хочу свій фотоальбом переробити під нього!