如何在调整.tif尺寸的同时保留通道属性(透明度)

时间:2019-01-30 13:35:12

标签: php tiff imagemagick-convert

当前,我正在具有ImageMagick版本6.7.2-7的CentOs Unix服务器上运行此命令。

convert Test.tif -channel All -separate -resize 50% -background none -alpha copy -combine Test10.tif

它正在做我需要做的所有事情-但它为每个通道添加了白色背景,如下所示: the test file before and after the command as shown in Photoshop CS4

我为alpha背景等尝试了许多不同的设置,但无法获得它来保持RGB通道的透明度。 This is the test file if you want to check it out

我不知道它是否需要我运行此命令并指定一个配置文件-它非常接近正确-可能很简单,但是我找不到有人用.tif提及此特定问题? / p>

谢谢。

已更新

Outcome After the first suggestion by fmw42-在Windows 7专业版上运行:ImageMagick 7.0.8-25 Q16 x64

1 个答案:

答案 0 :(得分:0)

在Imagemagick 6.9.10.25 Q16 Mac OSX中,这似乎对我有用

convert -quiet \( test.tif[0] -channel alpha -negate +channel \) test.tif[1] -background none -layers merge -resize 50% test_result.tif


http://www.fmwconcepts.com/misc_tests/tif_proc/test_resize.tif

问题是Imagemagick不能尽可能干净地处理TIF文件中的背景透明性。在Photoshop中,一层具有背景透明性。但是Imagemagick看到两层。第一个具有透明度(但是极性错误,需要反转)。全尺寸。但是第二层也包含透明度,而不是第一层的完整大小。因此,必须否定第一层,使用-layers合并以正确的偏移量将第二层合成到第一层上,然后调整大小。 Imagemagick引用[0]中从索引0开始的图层。

Windows语法略有不同(删除\ s):

convert -quiet ( test.tif[0] -channel alpha -negate +channel ) test.tif[1] -background none -layers merge -resize 50% test_result.tif


如果是.bat文件,则需要将%翻倍为%%。