簡體   English   中英

使用ImageMagick優化平鋪tiff的大小

[英]Optmize size of tiled tiff with ImageMagick

我正在使用ImageMagick從jpeg文件創建Tiled TIFF。 我的目標是使用IIPImage服務器。 我可以輕松生成文件但我的問題是我必須處理大型圖像倉庫,並且優化我的TIFF文件占用的空間至關重要。

因此,通過使用45%的壓縮(以及256x256的瓦片),我獲得了可接受的質量,這是我所知道的最高優化級別。 使用該配置,我的TIFF文件與原始jpeg文件的大小相同。 例如,如果jpeg的權重為10Mo,則結果TIFF的權重為11.4Mo。 這很好但不是因為如果我的初始倉庫重量為2,我必須為我的項目計划至少4To。

因此,我想知道它是否存在一種方法來進一步優化我的TIFF文件的大小,而不會失去超過45%的質量...通過使用ImageMagick或其他工具。

有關信息,我正在使用此命令生成TIFF。

convert <jpeg file> -quality 45 -depth 8 +profile '*' -define tiff:tile-geometry=256x256 -compress jpeg 'ptif:<tiff file>'

謝謝 !

我想我只是給@ mark-setchell的優秀答案添加了一個注釋,但是它出來的時間太長了,所以我已經單獨制作了一個,對不起。

你的問題是imagemagick(至少在當前的Ubuntu上)將金字塔形的JPEG TIFF保存為RGB而不是YCbCr,因此它們非常龐大 例如, wtc.jpg是使用默認Q75保存的10,000 x 10,000像素JPEG圖像:

$ time convert wtc.jpg -quality 45 -depth 8 +profile '*' -define tiff:tile-geometry=256x256 -compress jpeg 'ptif:x-convert.tif'
real    0m27.553s
user    1m10.903s
sys 0m1.129s
$ ls -l wtc.jpg x-convert.tif 
-rw-r--r-- 1 john john 15150881 Mar 16 08:55 wtc.jpg
-rw-r--r-- 1 john john 37346722 Mar 30 20:17 x-convert.tif

你可以看到這樣的壓縮類型:

$ tiffinfo x-convert.tif | grep -i interp
  Photometric Interpretation: RGB color

也許有一些方法可以讓它使用YCbCr代替? 不幸的是,我不確定如何。

我會用libvips代替。 它的速度提高了10倍以上(無論如何都在這台筆記本電腦上),使用的內存更少,而且它能正確啟用YCbCr模式,因此您可以獲得更小的文件:

$ time vips tiffsave wtc.jpg x-vips.tif --compression=jpeg --tile --tile-width=256 --tile-height=256 --pyramid
real    0m2.180s
user    0m2.595s
sys 0m0.082s
$ ls -l x-vips.tif 
-rw-r--r-- 1 john john 21188074 Mar 30 20:27 x-vips.tif
$ tiffinfo x-vips.tif | grep -i interp
  Photometric Interpretation: YCbCr

如果將Q設置為較低,則可以將尺寸調低:

$ vips tiffsave wtc.jpg x-vips.tif --compression=jpeg --tile --tile-width=256 --tile-height=256 --pyramid --Q 45
$ ls -l x-vips.tif 
-rw-r--r-- 1 john john 12664900 Mar 30 22:01 x-vips.tif

雖然我自己堅持默認的Q75。

我不熟悉IIPImage服務器,所以我的想法可能不合適。 如果存儲平鋪的TIFF,則存儲多個分辨率,但除了最高分辨率之外的所有分辨率都是多余的 - 那么您是否可以存儲最高分辨率並根據需要生成較低分辨率?

“PalaisDuLouvre.tif”圖像為2MB作為平鋪TIF:

ls -lhr PalaisDuLouvre.tif 
-rw-r--r--@ 1 mark  staff   1.9M 30 Mar 11:24 PalaisDuLouvre.tif

它包含6種不同分辨率的相同圖像:

identify PalaisDuLouvre.tif
PalaisDuLouvre.tif[0] TIFF 4000x828 4000x828+0+0 8-bit sRGB 1.88014MiB 0.000u 0:00.000
PalaisDuLouvre.tif[1] TIFF 2000x414 2000x414+0+0 8-bit sRGB 1.88014MiB 0.000u 0:00.000
PalaisDuLouvre.tif[2] TIFF 1000x207 1000x207+0+0 8-bit sRGB 1.88014MiB 0.000u 0:00.000
PalaisDuLouvre.tif[3] TIFF 500x103 500x103+0+0 8-bit sRGB 1.88014MiB 0.000u 0:00.000
PalaisDuLouvre.tif[4] TIFF 250x51 250x51+0+0 8-bit sRGB 1.88014MiB 0.000u 0:00.000
PalaisDuLouvre.tif[5] TIFF 125x25 125x25+0+0 8-bit sRGB 1.88014MiB 0.000u 0:00.000

然而,我可以將它存儲在比你平鋪的TIFF更好的質量(90%),如下所示:

convert PalaisDuLouvre.tif[0] -quality 90 fullsize.jpg

尺寸為554kB:

-rw-r--r--   1 mark  staff   554K 30 Mar 13:44 fullsize.jpg

並根據需要在1秒內生成與您的相同的平鋪TIF:

convert fullsize.jpg -define tiff:tile-geometry=256x256 -compress jpeg ptif:tiled.tif

或者,您可以使用vips使您的TIFF金字塔更快。 以下我的iMac需要0.2秒,比ImageMagick快近5倍:

vips tiffsave fullsize.jpg vips.tif --compression=jpeg --Q=45 --tile --tile-width=256 --tile-height=256 --pyramid

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM