Как можно преобразовать несколько изображений TIFF в файлы JPEG?

20506
Peter Mortensen

Как несколько файлов изображений TIFF могут быть преобразованы в файлы JPEG в пакетном режиме?

Обновление 1 : convertв Linux (часть ImageMagick ), как было предложено мисс Челлани и glallen, работало. Это было просто. Я загрузил ISO-образ версии нетбука Kubuntu 9.1, записал его на DVD-диск, перезапустил, запустил окно командной строки, изменил текущий каталог на каталог inter2.tif и набрал:

 convert -separate inter2.tif new_inter2.jpeg 

Это создало 3 ожидаемых изображения, new_inter2-0.jpeg, new_inter2-1.jpeg и new_inter2-2.jpeg. Были отображены некоторые сообщения об ошибках:

convert: incorrect count for field "DateTime" (21, expecting 20); tag trimmed. `inter2.tif' @ tiff.c/TIFFWarnings/526. convert: inter2.tif: unknown field with tag 317 (0x13d) encountered. `TIFFReadDirectory' @ tiff.c/TIFFWarnings/526. convert: inter2.tif: unknown field with tag 33628 (0x835c) encountered. `TIFFReadDirectory' @ tiff.c/TIFFWarnings/526. 

У меня много микроскопических изображений клеток . Они представлены в формате TIFF, один файл TIFF на изображение образца / ячейки и 3 канала / изображения в каждом файле TIFF (3 различных длины волны света).

Файлы TIFF необходимо преобразовать в файлы JPEG пакетным способом (вмешательство пользователя не требуется), 3 файла JPEG для каждого файла TIFF (соответствует 3 длинам волн).

Я пытался использовать инструмент командной строки tiffsplit, который входит в LibTIFF сделать первый шаг, извлекая 3 изображения из исходного TIFF 3 новых TIFF файлов. Но происходит сбой с файлами TIFF, которые у меня есть (в Windows XP 64 бит, DEP включен). Сообщение об ошибке:

Unhandled exception at 0x6fd853d1 in tiffsplit.exe: 0xC0000005: Access violation writing location 0x6fdc8ddb 

Знаете ли вы о другом решении? Либо в Windows, либо в Linux.

Вот пример файла TIFF (3,8 МБ). Составное изображение (один файл JPEG, созданный путем импорта в MS Paint и сохранения в формате JPEG), чтобы получить представление о том, что это такое:

alt text

6
Рад, что это сработало! glallen 12 лет назад 0
Вы также можете посмотреть на Perl-связки для imagemagic. Вы можете автоматизировать все, что может делать imagemagic, и создавать целые наборы инструментов для преобразования, аннотирования или извлечения данных IPTC / EXIF, изменения размера, разделения каналов и т. Д. Http://www.imagemagick.org/script/perl-magick.php glallen 12 лет назад 0

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

7
Sathya

IrfanView обладает отличными возможностями пакетной обработки.

Irfan View

IrfanView также поддерживает операции командной строки

i_view32.exe c:\myimages\*.tif /convert=c:\images\*.jpg 

Вот ссылка на руководство командной строки

Диалог немного занят, но пакетная обработка в IrfanView является мощной и довольно быстрой. Michael Todd 14 лет назад 0
Это кажется отличным способом для исследования и полуавтоматического преобразования. Но нужно ли мне всегда запускать IrfanWiew и вызывать этот диалог? Или это можно сделать с помощью параметров командной строки или с помощью некоторых сценариев? Peter Mortensen 14 лет назад 0
@Peter: IrfanView поддерживает параметры командной строки Sathya 14 лет назад 0
Я скачал и установил IrfanView. Но «/ extract» не работает, как описано в примере файла TIFF. Сохраняет только один файл JPEG (составной). Возможно, IrfanView не может обработать этот тип файла TIFF. Я пытался с ImageJ, и он может сделать раскол (но это из пользовательского интерфейса.) Peter Mortensen 14 лет назад 0
4
Miss Cellanie

Попробуйте convertили mogrifyиспользуйте ImageMagick. Больше инструкций от ubuntuforums.org.

Это выглядит многообещающе. Я дам ему попробовать. Peter Mortensen 14 лет назад 0
2
glallen

Возможно, есть немного более элегантный способ, но он должен сделать это для вас:

for FILE in $(ls *.tif); do \ for I in R G B; do \ convert -channel $I -separate -format jpg $FILE $FILE-$I.jpg ; \ done ; \ done ; \  rename s/\.tif\-/\-/ *.jpg 
Какой это язык? Michael Todd 14 лет назад 1
Это оболочка bash на Linux. «-Channel $ I -separate» внутри цикла for сгенерирует отдельные файлы для каждого компонента RGB, как вы и хотели. Я скачал ваше изображение и попробовал его, затем добавил цикл for, чтобы вы могли запустить его внутри целого каталога. После того, как вы запустите команду переименования, вы получите исходный файл inter2.tif и inter2-R.jpg inter2-G.jpg и inter2-B.jpg. glallen 14 лет назад 1
@glallen: Спасибо. Приятно знать, что на самом деле это работает с типом изображений, которые у меня есть. Я могу решить использовать этот маршрут. Peter Mortensen 14 лет назад 0
1
John T

Помимо отличных отдельных инструментов от ImageMagick, есть также этот простой инструмент командной строки под названием img2img, в который встроен компонент преобразования ImageMagick. Он поддерживает множество форматов и может автоматически определять форматы ввода. Вы можете выполнить пакетное преобразование следующим образом (обязательно запустите его в каталоге со всеми файлами .tiff):

for /f "delims=." %x in ('dir /b *.tiff') do img2img "%x.tiff" "%x.jpeg" 
Это создаст составное изображение. Я попытался использовать опцию «-deconstruct», но img2img, похоже, не распознает ни одну из опций, которые он перечисляет, если работает без параметров. У вас есть несколько примеров вызовов img2img с опциями / параметрами? Peter Mortensen 14 лет назад 0

Похожие вопросы