Como vários arquivos TIFF de imagem podem ser convertidos em arquivos JPEG?

6

Como vários arquivos TIFF de imagem podem ser convertidos em arquivos JPEG de uma maneira em lote?

Atualização 1 : convert no Linux (parte de ImageMagick ) como sugerido por Miss Cellanie e Glallen trabalhavam. Foi simples. Eu baixei a imagem ISO da versão de netbook do Kubuntu 9.1 , queimei em um DVD, reiniciei, iniciei um comando -line window, mudou o diretório atual para onde inter2.tif foi e digitou:

    convert -separate inter2.tif new_inter2.jpeg

Isso criou as 3 imagens esperadas, new_inter2-0.jpeg, new_inter2-1.jpeg e new_inter2-2.jpeg. Algumas mensagens de erro foram exibidas:

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.

Eu tenho um monte de imagens microscópicas de células . Eles estão no formato TIFF , um arquivo TIFF por amostra / imagem de célula e 3 canais / imagens em cada arquivo TIFF (3 diferentes comprimentos de onda de luz).

Os arquivos TIFF precisam ser convertidos em arquivos JPEG de uma maneira em lote (a intervenção do usuário não deve ser necessária), 3 arquivos JPEG para cada arquivo TIFF (correspondente aos 3 comprimentos de onda).

Eu tentei usar a ferramenta de linha de comando tiffsplit incluída com LibTIFF para fazer o primeiro passo, extraindo as 3 imagens do TIFF original para 3 novos arquivos TIFF. Mas ele trava com os arquivos TIFF que eu tenho (no Windows XP de 64 bits, DEP ativado). A mensagem de erro é:

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

Você conhece outra solução? Seja no Windows ou no Linux.

Aqui está um exemplo de arquivo TIFF (3,8 MB). Imagem composta (único arquivo JPEG criado por importação no MS Paint e salvando como JPEG) para dar uma impressão do que é:

    
por Peter Mortensen 02.12.2009 / 00:37

4 respostas

2

Há provavelmente uma maneira um pouco mais elegante, mas isso deve ser feito para você:

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
    
por 02.12.2009 / 01:05
7

O IrfanView possui excelentes habilidades de processamento em lote.

OIrfanViewtambémsuportaoperaçõesdelinhadecomando

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

Aquiestáolinkpara Manual da linha de comando

    
por 02.12.2009 / 05:19
4

Experimente convert ou mogrify usando o ImageMagick. Mais instruções em ubuntuforums.org.

    
por 02.12.2009 / 00:42
1

Além das excelentes ferramentas separadas do ImageMagick, há também essa ferramenta de linha de comando simples chamada img2img que tem o ImageMagick converter componente incluído nele. Ele suporta vários formatos e pode detectar automaticamente formatos de entrada. Você pode converter em lote assim (certifique-se de rodar isso no diretório com todos os arquivos .tiff):

for /f "delims=." %x in ('dir /b *.tiff') do img2img "%x.tiff" "%x.jpeg"
    
por 02.12.2009 / 01:09