【问题标题】:ImageMagick convert tif to png or jpeg producing larger imagesImageMagick 将 tif 转换为 png 或 jpeg 生成更大的图像
【发布时间】:2021-04-18 19:29:53
【问题描述】:

我有很多 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: %C\n" *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

【问题讨论】:

  • CCITT Group 4(又名 T.6)对于黑白 (FAX) 数据的效率非常。 JPEG 对于此类数据效率低下。具有最大压缩率的 1 位 PNG 的大小应该接近,但我认为您在此处看到的内容并没有什么意外。相反,假设原始文件未压缩是错误的。
  • 好的,谢谢,也很高兴知道。如何设置 png 的最大压缩率?我知道 1 位是用选项 -depth 1 设置的(它几乎不会改变结果图像的大小)

标签: imagemagick png tiff imagemagick-convert


【解决方案1】:

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

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

identify -format "%f: size: %B, compression: %C\n" *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

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

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

【讨论】:

  • 我用您建议的命令的输出更新了我的问题。我已经尝试按照您的建议将 tif 转换为不同的压缩方式进行试验,但它们似乎都比原来的重。另一个奇怪的事情是,一位同事用 Photoshop 打开了其中一张图片,它说它有 1 MB 重。即使它说终端只有几 kB。而且导出成任意格式后,比原版还重!
  • 您能否分享您使用的确切命令以及至少一个原始输入和输出文件 - 如果 imgur 不接受 TIFF,您可能需要使用 Google Drive 或 Dropbox。
  • 啊,命令是问题中的那个,convert *.tif -set filename: "%t" %[filename:].jpg和png一样
  • 您的 TIFF 是一位传真。 JPG 效果不好,但你可以用它们制作一个 1 位的 PNG 图像,大小应该差不多。
猜你喜欢
  • 2015-04-30
  • 2012-03-14
  • 2019-10-27
  • 1970-01-01
  • 2012-09-15
  • 2013-05-29
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
相关资源
最近更新 更多