ImageMagick将tif转换为png或jpeg,生成更大的图像



我有很多tif图像,我想转换成网络友好的格式。我一直在尝试使用imagemagick(和其他几个库(来转换它们,但生成的图像比原始的未压缩图像大得多。

例如:

1.tif - 348.2kB
1.png - 781.7 kB
1.jpg - 429.1 kb
2.tif - 49.8 kB
2.png - 76.2 kB
2.jpg 900.4 kB
3.tif 7.7 kB
3.png 21.4 kB
3.jpg 191.3 kB

命令正在使用:

convert *.tif -set filename: "%t" %[filename:].jpg

我不是一个专家,但我不明白从一个未压缩的源图像到一个压缩的图像是如何使大小爆炸的。知道发生了什么吗?

运行建议的命令后

identify -format "%f: size: %B, compression: %Cn" *png *tif *jpg

我得到以下输出

00000001.png: size: 104522, compression: Zip
00000002.png: size: 23565, compression: Zip
00000003.png: size: 58936, compression: Zip
00000001.tif: size: 74122, compression: Group4
00000002.tif: size: 10946, compression: Group4
00000003.tif: size: 29702, compression: Group4
00000001.jpg: size: 1011535, compression: JPEG
00000002.jpg: size: 226068, compression: JPEG
00000003.jpg: size: 457045, compression: JPEG

如果没有看到您的图像,很难说发生了什么——并非所有软件都使用相同的压缩方法或质量,并且某些格式(如PNG(是无损的。

作为第一次尝试,尝试运行此命令来检查所有图像的文件名、文件大小和压缩类型:

identify -format "%f: size: %B, compression: %Cn" *png *tif *jpg

样本输出

zHZB9.png: size: 1849, compression: Zip
result.tif: size: 290078, compression: None
z.tif: size: 213682, compression: LZW
sky.jpg: size: 88162, compression: JPEG
z.jpg: size: 8122, compression: JPEG

现在你可以看到数字,你可以决定你想要解决的问题。因此,要获得所有可以使用的压缩类型的列表:

identify -list compress

样本输出

B44A
B44
BZip
DWAA
DWAB
DXT1
DXT3
DXT5
Fax
Group4
JBIG1
JBIG2
JPEG2000
JPEG
LosslessJPEG
Lossless
LZMA
LZW
None
Piz
Pxr24
RLE
RunlengthEncoded
WebP
ZipS
Zip
Zstd

现在,您可以进行实验,例如,通过制作一些具有不同设置的畅通节能法:

convert -size 1024x768 gradient: 1.tif
convert -size 1024x768 gradient: -compress lzw 2.tif
convert -size 1024x768 gradient: -compress jpeg  3.tif
convert -size 1024x768 gradient: -compress jpeg  -quality 40 4.tif

现在检查:

1.tif: size: 1573138, compression: None
2.tif: size: 6316, compression: LZW
3.tif: size: 17520, compression: JPEG
4.tif: size: 9830, compression: JPEG

最新更新