| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Тэги JPEG-изображения |
| Автор: Dr Smth 9.8.2006, 17:42 |
| В свойствах jpeg-изображения можно найти вкладку "Сводка", на которой хранится информация о файле: Название, Тема, Автор, Категория, Ключевые слова, Комментарий. По-видимому, это что-то типа тэгов файла. Но как их можно прочитать (изменить) из Delphi? |
| Автор: Alexeis 9.8.2006, 18:12 |
Такая информация хранится только в дополнительных тегах со свободной структурой, определяемой приложением ее создавшей. Найти нужный сегмент легко, а вот для разбора структуры нужно обратится на сайт производителя программы созавшей эту картинку. Вероятно здесь есть неофициальные стандарты, но официальная документация не регламентирует их структуру. |
| Автор: Dr Smth 9.8.2006, 18:32 |
| В Windows XP эта информация есть у любого JPG-файла, вне зависимости от приложения, которое его создало. Поменять эти тэги можно вручную через сам Windows. Неужели нет никаких функций, которые могли бы сделать это программно? |
| Автор: _hunter 9.8.2006, 18:47 |
| функций нету (ибо нафик нада?) вот: http://www.media.mit.edu/pia/Research/deepview/exif.html дока |
| Автор: Alexeis 9.8.2006, 22:24 | ||||
| Спасибо за доку _hunter Ну вот пожалуйста как я и говорил
Тут может быть что угодно.
Часть компаний использует этот сегмент для внедрения своего подсегмента Exif не стандартизированого "INFORMATION TECHNOLOGY –DIGITAL COMPRESSION AND CODING OF CONTINUOUS-TONE STILL IMAGES – REQUIREMENTS AND GUIDELINES". Этот подсегмент есть далеко не во всех картинках, но содержит как раз ту инфу которая нужна. Добыть ее несложно найдя нужный сегмент, и перейдя по нужному смещению. Если такой сегмент отсутствует XP его дописывает |
| Автор: Snowy 10.8.2006, 09:32 |
| Поиск по слову EXIF: http://forum.vingrad.ru/index.php?act=Search&CODE=show&searchid=19c76db37c72dde42531829303cb0bb8&search_in=posts&result_type=topics&flag=search&debug=&highlite=exif&skipped= |
| Автор: Dr Smth 11.8.2006, 15:01 |
| Я нашёл тут один модуль, который считывает EXIF-информацию, но у него какие-то проблемы с русскими символами: http://mcguirez.homestead.com/downloads.html. Сам я не потяну решение данной задачи. Так что помогите, господа опытные программисты. Упростим задачу: к примеру я через свойства файла зашёл на вкладку Сводка и написал какое-то Название. Как прочиталь (или изменить) эту строчку названия программно? /На примере этого одного тега/. Про маркеры я читал и совершенно запутался (их так много)... |
| Автор: Alexeis 11.8.2006, 15:35 |
| насколько я помню, там ASCII кодировка применяется. Про них ничего такого знать не надо. НАчинаются они с $FF, второе число его идентификатор, дальше два байта в обратном (для интел) поряде длина всего сегмента (без учета заголовка, но с учетом самого поля длинны). Нужный нам маркер имеет идентификатор $E1, после того как его нашли, проверяем является ли этот сегмент сегментом EXIF, по его подзаголовку, дальше определяется порядок следования старшего и ммладшего байтов в словах, так как этот подсегмент позволяет оба варианта, далее ищем нужные поля согласно описанию сегмента. -------------------------------------------------------------------------------------------------------------------------------- Поиск по сайту дал отличный рабочий модуль с примерами, так что и выдумывать ничего не надо Проикрепляю -------------------------------------------------------------------------------------------------------------------------------- Прикрепление удалено так как было неполным. Ниже на один пост находится оригинальный вариант модуля с примерами |
| Автор: Dr Smth 12.8.2006, 12:58 |
| dEXIF.pas отсутствует... - не работает. |
| Автор: Alexeis 12.8.2006, 14:03 |
| Извини это я чуток напутал |