Как сделать многостраничный TIFF без перекодирования ИЛИ как установить компрессию для каждой страницы независимо?

502
Binarus

Давайте предположим следующую ситуацию: у меня есть двадцать одностраничных файлов TIFF, которые являются RGB, но на самом деле содержат только два цвета (черно-белый текст), и десять одностраничных файлов TIFF, которые также являются RGB и содержат много цветов (фотографий).

Сжатие TIFF черно-белых файлов (страниц) осуществляется в формате ZIP (хотя файлы имеют формат RGB, тот факт, что каждый пиксель является либо черным, либо белым, делает сжатие ZIP очень эффективным). Общий размер двадцати черно-белых файлов составляет около 4 МБ.

TIFF-сжатие цветных файлов (страниц) - это JPEG, который достаточно эффективен для такого рода контента. Общий размер десяти цветных файлов составляет около 20 МБ.

Теперь я хочу объединить все файлы в многостраничный файл TIFF, который занимает как можно меньше места, но также сохраняет как можно больше информации об изображении. Насколько я вижу, у меня есть три варианта:

1) Идеальное решение:

Объедините все файлы в один файл TIFF без какого-либо изменения данных каждого файла. Исходя из моих знаний о формате TIFF, я уверен, что это можно сделать. Внутри многостраничного файла TIFF каждая страница имеет свой собственный «каталог» (метаданные), описывающий тип сжатия и другие параметры, поэтому речь идет просто о том, чтобы объединить все отдельные файлы в один и связать каталоги (метаданные) для каждой страницы. правильно.

Я даже уже начал работать над таким приложением, но из-за нехватки времени я не смог закончить его (и, вероятно, не смогу сделать это в ближайшем будущем).

Я не нашел ни одного бесплатного приложения, ни Windows, ни Linux, которое могло бы объединять файлы TIFF таким образом.

2) Используя GraphicsMagick / ImageMagick и т. Д., Я мог бы объединить отдельные файлы, но затем мне пришлось бы указать один параметр командной строки, чтобы определить, какое сжатие TIFF следует использовать для каждой страницы в результирующем файле.

К сожалению, при использовании сжатия ZIP (или LZW) для результирующего файла это резко увеличит размер цветных страниц; 20 МБ, которые они занимают сейчас, станут больше, чем 100 МБ, поэтому полученный файл будет очень большим.

С другой стороны, при использовании сжатия JPEG для получающегося файла это резко увеличит размер черно-белых страниц; 4 МБ, которые они занимают сейчас, станут десятками МБ, поэтому полученный файл будет очень большим и в этом случае.

3) Попробуйте найти приложение, которое может хранить каждую страницу в результирующем файле индивидуально, например (например, хранить страницу 1 со сжатием ZIP, страницу 2 со сжатием JPEG, страницу 3 со сжатием ZIP и т. Д.). ,

Излишне говорить, что, хотя формат файла TIFF определенно позволяет это, я не смог найти приложение, которое позволило бы мне это сделать.

Конечно, решение 1) было бы идеальным. Таким образом, мой первый вопрос таков: кто-нибудь знает о бесплатном приложении (Windows или Linux, предпочтительно командной строке), которое объединяет файлы TIFF без изменения данных изображения, особенно без повторного сжатия?

Решение 3) также было бы приемлемо, поэтому мой второй вопрос: кто-нибудь знает о бесплатном приложении (Windows или Linux, предпочтительно командной строке), которое позволяет мне объединять файлы TIFF, определяя, таким образом, сжатие для каждой страницы в конечном файле в отдельности? ?

Решение 2) не приемлемо, конечно.

Есть идеи?

0

0 ответов на вопрос