Страница 1 из 2

[WDX_Plugin Request] Параметры сжатия JPEG (Photoshop)

Добавлено: Вт фев 07, 2012 20:15
aLLigator
Существует достаточно полезная программа показывающая различную информацию о JPEG файлах: http://www.impulseadventure.com/photo/jpeg-snoop.html

Одной из такой есть информация о выбранном качестве сжатия, которую для файлов Adobe Photoshop программа берет из маркера APP13.

Для файлов сжатых в режиме "Save For Web.." всё достаточно просто (значение всегда в одном и том же положении и вопрос решен плагином decHexWdx), но вот для режима "Save As..", намного сложнее.
Детальное описание нашел здесь:
http://www.impulseadventure.com/photo/s ... r-web.html

Просьба сделать плагин находящий значение HEX: 38 42 49 4D 04 06 00 00 00 00 07 00 02 и по этим последним двум значениям выводящим информацию о качестве согласно таблицы:
FFFC Quality 0
FFFD Quality 1
FFFE Quality 2
FFFF Quality 3
0000 Quality 4
0001 Quality 5
0002 Quality 6
0003 Quality 7
0004 Quality 8
0005 Quality 9
0006 Quality 10
0007 Quality 11
0008 Quality 12

Нужна сортировка по этому значению в колонке ТС.

Re: [WDX_Plugin Request] Параметры сжатия JPEG (Photoshop)

Добавлено: Чт фев 09, 2012 16:45
Dec
aLLigator писал(а):Для файлов сжатых в режиме "Save For Web.." всё достаточно просто (значение всегда в одном и том же положении и вопрос решен плагином decHexWdx)

...

Просьба сделать плагин находящий значение HEX: 38 42 49 4D 04 06 00 00 00 00 07 00 02 и по этим последним двум значениям выводящим информацию о качестве
На самом деле там все гораздо сложнее. Но поскольку я в этой теме уже 5 лет, то на коленке написал нужный тебе плагин. Немного исходников (не все) в комплекте.

http://www.thumbnailexpert.com/binary/d ... aveWDX.zip

Добавлено: Чт фев 09, 2012 17:53
aLLigator
Огромное спасибо! Как проверю - отпишусь.

Знаю, что сложнее, но мне хотя бы по этому параметру отсортировать файлы - уже хорошо будет!

А программа очень выручает во многих случаях! гораздо больше информации дает, чем Ваш же плагин decMetaExpertWLX, тем более расшифровывает многие параметры, а не просто показывает значения.

Добавлено: Чт фев 09, 2012 17:57
Dec
aLLigator писал(а):Знаю, что сложнее, но мне хотя бы по этому параметру отсортировать файлы - уже хорошо будет!
Кеп мне подсказывает, что сортировкой занимается сам Total. И плагин тут как бы не при делах.
aLLigator писал(а):А программа очень выручает во многих случаях!
Какая программа?

Добавлено: Чт фев 09, 2012 18:12
aLLigator
Dec писал(а):
aLLigator писал(а):Знаю, что сложнее, но мне хотя бы по этому параметру отсортировать файлы - уже хорошо будет!
Кеп мне подсказывает, что сортировкой занимается сам Total. И плагин тут как бы не при делах.
Сам Тотал никак не отсортирует файлы в порядке возрастания качества (параметра сжатия) JPEG без вывода этого самого параметра в колонку.
Возникла необходимо разгрести десятки тысяч файлов... сначала шли только сжатые в режиме "Save for Web" и вопрос успешно был решен Вашим же плагином decHexWdx, посокльку параметр находиться в одном и том же положении НЕХ. Сейчас дошел до сохраненных через "Save As"... так же была необходимость сортировки в порядке возрастания значения.
Еще раз спасибо Вам за плагин! только что проверил на тестовых картинках - пока всё идеально!
Dec писал(а):
aLLigator писал(а):А программа очень выручает во многих случаях!
Какая программа?
JPEGsnoop, по ссылке из первого сообщения этой темы.



Есть возможность так же привязаться к режимам сжатия - Baseline: standart/optimized; Progressive и количеству сканов; наличия цветового профиля ICC; цветовой субдискретизации...
Если интересно - могу дать такую информацию для дальнейшего развития плагина!
Мне эта информация пока ни к чему, но может кому и пригодится.

Добавлено: Чт фев 09, 2012 18:21
Dec
aLLigator писал(а):Сам Тотал никак не отсортирует файлы в порядке возрастания качества (параметра сжатия) JPEG без вывода этого самого параметра в колонку.
Ну, как бы, логично.
aLLigator писал(а):сначала шли только сжатые в режиме "Save for Web" и вопрос успешно был решен Вашим же плагином decHexWdx, посокльку параметр находиться в одном и том же положении
Повторюсь, это не всегда так.
aLLigator писал(а):Есть возможность так же привязаться к режимам сжатия - Baseline: standart/optimized; Progressive и количеству сканов; наличия цветового профиля ICC; цветовой субдискретизации...
Если интересно - могу дать такую информацию для дальнейшего развития плагина!
Все это прикрутить не проблема, но мне лень заниматься вещами, которые никому не нужны.

Добавлено: Чт фев 09, 2012 20:20
aLLigator
Dec писал(а):Все это прикрутить не проблема, но мне лень заниматься вещами, которые никому не нужны.
Ну, я тут подумал... не отказался бы от такого функционала, если Вас это не сильно затруднит!

Добавлено: Чт фев 09, 2012 20:25
Dec
aLLigator писал(а):Ну, я тут подумал... не отказался бы от такого функционала, если Вас это не сильно затруднит!
Пиши конкретно, что нужно добавить. И перейди уже на ты, мы не в театре.

Добавлено: Пт фев 10, 2012 18:24
Dec
aLLigator писал(а):Надо добавить...
Добавил определение режима сжатия и количество сканов. Для "Save for Web" определить Baseline и Otpimized пока не представляется возможным. Standart и Baseline определяются как Baseline. Определение ICC добавлю познее.

Добавлено: Пт фев 10, 2012 21:44
aLLigator
Добрый вечер! Ещё раз спасибо!

Правда заметил, что для режима "Save for Web" в "бэйслайновых" вообще не пишет режима.. Вот скриншот
Из сообщения же понял, что должно было писать по крайней мере Baseline.

А так же есть небольшая неточность в выводе информации для режима "Save As..", заключающаяся в том, что Baseline (скан в один проход) в фотошопе выполняется в режимах "standart" и "optimized", а так как показывает сейчас можно подумать, что это три разных режима - Baselinе, Оptimized и Progressive.
Изображение
Есть предложение подправить для точности.

Кстати, JPEGsnoop распространяется с открытым исходным кодом. Понимаю, что копаться в чужом коде ещё то удовольствие, но может так будет проще определить к чему идет привязка там при определении параметров. Это может дать возможность определять качество не только для файлов Фотошопа, но и массы других программ.
Это был бы тогда уже плагин для массового использования!

Добавлено спустя 9 минут:

Для режима "Save for Web" параметров похоже, что столько же.. если чекбокс "optimized" не выбран получится аналог Baselinе (standard), но как его по файлу отличить от Baselinе (Оptimized) я пока не знаю.
Скриншот
Интересно, какое количество сканов используется при прогресивном режиме в этом случае?
ICC можно встроить в обоих режимах, но записываются они в файл поразному.

[mod="Avada"]Замечание за массовое нарушение правил форума. Пост приведён в пристойный вид: неформатные картинки заменены ссылками, убраны ненужные пустые строки, оффтопная приписка (да ещё и с выделением ярким цветом) удалена полностью.[/mod]

Добавлено: Сб фев 11, 2012 00:28
Dec
Обновил логику плагина.

Добавлено: Сб фев 11, 2012 02:47
aLLigator
Немного информации по поводу отличий Baselinе (standard) и Baselinе (Оptimized) в структуре для режима "Save for Web".

Отличия имеет только маркер DHT (Таблицы Хаффмана), а точнее его размер.. файл сжатый в обычном Baselinе имеет вдвое больший размер этой секции по сравнению с Оptimized и Progressive.
Кстати, это же самое справедливо и для режима "Save As.."

Все остальные маркеры либо абсолютно идентичны, либо не имеют существенных различий.
Надеюсь эта информация как-то поможет!

Так же пытаюсь понять колько же всетаки сканов используется в Progressive...

Немного о самой структуре:

Код: Выделить всё

Маркер [FF C4]: DHT (таблица Хаффмана)
 


Эта секция хранит коды и значения полученные кодированием Хаффмана.
 
_______________FF C4 00 15 00 01 01 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 03 02
 
[00 15] длина: 21 байт.
 [0_] класс: 0 (0 — таблица AC коэффициэнтов, 1 — таблица DC коэффициэнтов).
 [_0] идентификатор таблицы: 0
 Длина кода Хаффмана: 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16
 Количество кодов:  [01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00]
 Количество кодов означает количество кодов такой длины. Обратите внимание, что секция хранит только длины кодов, а не сами коды. Мы должны найти коды сами. Итак, у нас есть один код длины 1 и один — длины 2. Итого 2 кода, больше кодов в этой таблице нет.
 С каждым кодом сопоставлено значение, в файле они перечислены следом. Значения однобайтовые, поэтому читаем 2 байта.
 [03] — значение 1-го кода.
 [02] — значение 2-го кода.

Добавлено: Сб фев 11, 2012 02:49
Mellomann
aLLigator
Оптимально - использовать 4, но зависимо от сложности изображения, можно давать хоть 3, хоть 5, хоть вообще 8...

Добавлено: Сб фев 11, 2012 02:51
aLLigator
Mellomann писал(а):aLLigator
Оптимально - использовать 4, но зависимо от сложности изображения, можно давать хоть 3, хоть 5, хоть вообще 8...
В режиме "Save for Web" не дает выбрать.. хочется просто знать сколько использует по умолчанию.

Добавлено: Чт фев 16, 2012 02:14
Моторокер
Начинал как-то писать такой плагин для получения информации по JPEG файлу.
uses
ImageEnIO, imageenproc, hyieutils, hyiedefs, TIFLZW, GifLZW;

JpegFileQuality:= IECalcJpegFileQuality(FileName)

Показывает сжатие в процентах.