2016-03-16 19 views
1

Я искал высоко и низко для этого безрезультатно. Я хотел бы иметь возможность извлечь смещение байта, при котором происходит каждый прогрессивный уровень/сканирование JPEG.Прогрессивный слой JPEG/сканирование смещения (imagemagick?)

Например, изображение 100 КБ имеет 5 слоев, используемых для рендеринга конечного изображения; слой 1 заканчивается на kB 5, слой 2 в kB 20, слой 3 на kB 60 и т. д. (например).

Можно ли использовать Imagemagick для этого? Инструмент identify, похоже, не поддерживает это. Если да, то как? В противном случае какой инструмент (ы) мог бы выполнить это? Я бы предпочел не писать собственный парсер JPEG. Благодарю.

ответ

0

Все, что вам нужно сделать, это сканировать поток изображений и искать маркеры SOS (начало сканирования).

+0

Я решил, что мне, возможно, придется сделать что-то подобное. Каков наилучший способ сканирования двоичного файла для байтового маркера? Я никогда этого не делал раньше. – Eric

+0

Вам необходимо получить копию стандарта JPEG. Все маркеры JPEG начинаются с FF. Некоторые маркеры имеют поля длины, которые вы должны использовать для пропуска данных, которые могут включать значения FF. В остальном вы сканируете FF и просто пропустите маркеры, которые вам не интересны (включая FF00, что означает сжатое значение FF). – user3344003

+0

Это действительно полезно. Спасибо, сэр! – Eric