如何将多个图像 TIFF 文件转换为 JPEG 文件?

Pet*_*sen 6 jpeg tiff images conversion

如何将多个图像 TIFF 文件批量转换为 JPEG 文件?

更新 1convert在 Linux(ImageMagick 的一部分)上,按照 Cellanie 小姐和 glallen 的建议工作。这很简单。我下载了Kubuntu 9.1上网本版本的 ISO 映像,将其刻录到 DVD 上,重新启动,启动命令行窗口,将当前目录更改为 inter2.tif 所在的位置并键入:

    convert -separate inter2.tif new_inter2.jpeg
Run Code Online (Sandbox Code Playgroud)

这创建了 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.
Run Code Online (Sandbox Code Playgroud)

我有很多细胞显微镜图像。它们采用TIFF格式,每个样本/细胞图片一个 TIFF 文件,每个 TIFF 文件中有 3 个通道/图像(3 种不同的光波长)。

TIFF文件需要批量转换为JPEG文件(不需要用户干预),每个TIFF文件3个JPEG文件(对应3个波长)。

我尝试使用LibTIFF附带的命令行工具tiffsplit来执行第一步,将原始 TIFF 中的 3 个图像提取为 3 个新的 TIFF 文件。但是它会因我拥有的 TIFF 文件而崩溃(在 Windows XP 64 位,启用 DEP)。错误信息是:

Unhandled exception at 0x6fd853d1 in tiffsplit.exe: 0xC0000005: Access violation writing location 0x6fdc8ddb
Run Code Online (Sandbox Code Playgroud)

你知道另一种解决方案吗?无论是在 Windows 还是 Linux 上。

这是一个示例 TIFF 文件(3.8 MB)。合成图像(通过在 MS Paint 中导入并另存为 JPEG 制作的单个 JPEG 文件)让您了解它是什么:

替代文字

Sat*_*hat 7

IrfanView具有出色的批处理能力。

伊尔凡视图

IrfanView 还支持命令行操作

i_view32.exe c:\myimages\*.tif /convert=c:\images\*.jpg
Run Code Online (Sandbox Code Playgroud)

这是命令行手册的链接


gla*_*len 2

可能有一种稍微更优雅的方法,但这应该适合您:

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
Run Code Online (Sandbox Code Playgroud)