Показать сообщение отдельно
  #1  
Старый 30.11.2018, 13:46
Аватар для Помидоркин
Помидоркин Помидоркин вне форума
Начинающий
 
Регистрация: 07.10.2012
Адрес: Дедовск
Сообщения: 110
Версия Delphi: Rio 10.3
Репутация: 10
По умолчанию Прочитать/отредактировать ImageDescription

Собственно сабж.
Из того что накопал в инете - два более или менее приемлемых варианта: CCR.Exif и GDI+

С CCR.Exif собственно все получилось и читает и записывает, но...
1. установить CCR.Exif как компонент не совладал, тупо скопировал все модули в папку с проектом
2. все это, как мне показалось, очень тяжеловесно. Оно и понятно там и камеры разных производителей, и условия съемки, и GPS информация.
Попробовал разобраться в исходнике, докопался до какой то процедуры из System.[что-то там], но так ничего и не понял.

GDI+. Здесь на форуме нашел тему, начал искать в инете, но на Delphi практически ни чего нет, в основном С++.
В целом все понятно - инициализировать библиотеку, создать Image, получить из него TITLE, COMMENTS, KEYWORDS, SUBJECT.
Код:
procedure TForm1.FileListBox1Click(Sender: TObject);
var inpt: TGdiplusStartupInput;
     token: DWORD;
     size: DWORD;
     img: TGPBitmap; 
     prop: PPropertyItem;
begin
 ListBox1.Clear;

 GdiplusStartup(token,@inpt,nil);
 img:= TGPBitmap.Create(FileListBox1.FileName);
 GdipGetPropertyItemSize(img,GDICOMMENT_WINDOWS_METAFILE,size);
 GdipGetPropertyItem(img,GDICOMMENT_WINDOWS_METAFILE,size,prop);

 ListBox1.Items.Append([непонятно что]);

 img.Free;
 GdiplusShutdown(token);
end;
и не понятно куда пристроить
Код:
#define TAG_XP_TITLE                    0x9C9B
#define TAG_XP_COMMENTS                 0x9C9C
#define TAG_XP_AUTHOR                   0x9C9D
#define TAG_XP_KEYWORDS                 0x9C9E
#define TAG_XP_SUBJECT                  0x9C9F

Понимаю, то что я написал - ересь. Научите правильно жить.
Ответить с цитированием