Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Предварительный просмотр уменьшенного изображения. Как? / 10 сообщений из 10, страница 1 из 1
23.11.2020, 12:23
    #40021312
hlopotun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
Всем привет,

есть нужда при перемещении по записям в гриде показывать связанные с ними изображения на диске (jpeg, png) (понятно с задержкой через таймер). Поскольку изображения могут быть большими то грузить их в TImage целиком медленно лучше грузить их уменьшенные копии. Как получить такую уменьшенную копию. Как вообще лучше подойти к этому вопросу?

Спасибо
...
Рейтинг: 0 / 0
23.11.2020, 12:34
    #40021322
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
...
Рейтинг: 0 / 0
23.11.2020, 12:42
    #40021330
X11
X11
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
Vampyre Imaging


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure ResizeImage(const ASource, ADest: String);
var
  Img: TImageData;
  AspectRatio: Single;
begin
  Imaging.InitImage(Img);
  try
    Imaging.LoadImageFromFile(ASource, Img);
    AspectRatio := Img.Width / Img.Height;
    Imaging.ResizeImage(Img, 100, Round(100 / aspectratio), rfNearest);
    Imaging.SaveImageToFile(ADest, Img);
  finally
    Imaging.FreeImage(img);
  end;
end;



Я событии TDataSet.onCalcFields показываю миниатюру, если ее нет создаю на лету. Файл сохраняется и в следующий раз уже создавать не нужно.
Нужно не забывать удалять, если объект удаляется.
Можно создать процедуру автоматический очистки миниатюр несуществующих объектов.
...
Рейтинг: 0 / 0
23.11.2020, 13:47
    #40021359
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
hlopotunПоскольку изображения могут быть большими то грузить их в TImage целиком медленно лучше
грузить их уменьшенные копии. Как получить такую уменьшенную копию.

Сначала загрузить в TBitmap/TJpeg/TPng, а потом уменьшить.

Ну или гуглить на предмет API работы с thumbnails, что лично мне - лень.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.11.2020, 15:08
    #40021415
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
Dimitry Sibiryakov,

ТЗ, судя по начальному посту - автор изначально хочет не грузить полномасштабные изображения, а хочет грузить уменьшенные копии. Поэтому надо хранить две копии изображения - полномасштабную и уменьшенную. Уменьшенные грузятся сразу, полномасштабные - после принудительного вызова.

Как сделать уменьшенную копию - вариантов много. Например на FMX это пара строк кода
...
Рейтинг: 0 / 0
23.11.2020, 15:13
    #40021418
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
asutp2Например на FMX это пара строк кода

Ага, первая строка загружает полномасштабное изображение, вторая - уменьшает его.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.11.2020, 15:49
    #40021437
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
Dimitry Sibiryakov
Сначала загрузить в TBitmap/TJpeg/TPng, а потом уменьшить.
Адски медленно для JPEG.

Dimitry Sibiryakov
Ну или гуглить на предмет API работы с thumbnails, что лично мне - лень.
GDI+ - GetThumbnailImage
...
Рейтинг: 0 / 0
23.11.2020, 20:06
    #40021526
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
есть такая либа Native JPEG, 100% Delphi Source.
среди прочего умеет:
Load Jpeg files at full scale, half scale, quarter scale or one-eight scale. If just a thumbnail is required, this option will speed up loading and decoding times considerably.
https://www.simdesign.nl/nativejpg.html
может быть подойдет. юзаю в продакшне, работает без нареканий
...
Рейтинг: 0 / 0
23.11.2020, 21:26
    #40021542
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
Еще в джипегах превьюшки могут храниться как метаданные. Можно с этим поиграться
...
Рейтинг: 0 / 0
23.11.2020, 23:20
    #40021566
Sapersky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предварительный просмотр уменьшенного изображения. Как?
Например, в этом компоненте есть работа со встроенными превьюшками:
https://github.com/cutec-chris/dexif
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Предварительный просмотр уменьшенного изображения. Как? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]