我正在使用imagemagick将许多3D纹理转换为视频游戏。我的源文件是png,我的目标文件也是png。但是我注意到,每当alpha通道下降到0.0时,我的颜色信息就消失了(我需要它们)。我只想按原样缩放所有渠道。我猜有一个小的开关可以解决该问题,但是截止日期临近,我对此一无所获。
简单的命令来重现此内容:
convert source-with-alpha.png -scale 2014 target.png
(我也尝试过-resize
,但是也没有用)。
虽然只做convert source-with-alpha.png target.png
可以很好地工作(但没有缩小)。
谢谢您的帮助。
答案 0 :(得分:1)
我猜ImageMagick正在尝试优化某些东西,但是不确定是什么/为什么。也许是这样的想法,如果透明的东西看不到,那么我们也可以将其变黑以使其压缩良好。
无论如何,请尝试分离通道,以便将它们全部视为独立通道,然后调整大小并重新组合:
convert input.png -channel RGBA -separate -resize XxY -combine result.png
答案 1 :(得分:1)
我不确定我是否理解您的问题。我没有问题,可以使用ImageMagick 6.9.10.28 Q16 Mac OSX和libpng 1.6.36来调整透明PNG图像的大小。也许您需要升级一个或两个。
将白色变为透明:
convert logo.png -transparent white logot.png
调整大小:
convert logot.png -resize 25% logot_small.png
答案 2 :(得分:0)
我用两种不同版本的Windows imagemagick尝试了Mark Setchell的答案,但是我仍然遇到这个问题。 调整大小时,如果alpha为0,则RGB变为0。 一种解决方法是稍微添加Alpha,使其变为非零值:
magic.exe input.tga -channel a -evaluate add 0.2% -channel RGBA -separate -filter Quadratic -resize -resize XxY! -combine result.tga
或者(相同的结果)
magick.exe ( input.tga -alpha off -filter Quadratic -resize XxY! ) ( input.tga -filter Quadratic -resize XxY! -alpha extract -evaluate add 0.2% ) -compose Copy_Alpha -composite result.tga
(“-filter Quadratic”是可选的)
答案 3 :(得分:0)
发布您的tga文件之一,以便我们对其进行测试。您的ImageMagick是什么版本?不需要任何切换。在IM 6.9.10.65 Q16 Mac OSX上,这对我来说效果很好。
进行透明的TGA:
convert logo: -transparent white logo.tga
调整50%
convert logo.tga -resize 50% logo2.tga