ImageMagick 在 alpha 为 0 时删除颜色 (png)
ImageMagick removes colors when alpha is 0 (png)
我正在使用 imagemagick 为视频游戏转换许多 3D 纹理。我的源文件是 png,我的目标文件也是 png。但我注意到,每当 alpha 通道下降到 0.0 时,我的颜色信息就消失了(我需要它们)。我只想按原样缩放所有频道。我想有一个小开关可以解决这个问题,但截止日期快到了,我找不到任何相关信息。
重现这个的简单命令:
convert source-with-alpha.png -scale 2014 target.png
(我也试过-resize
,还是不行)。
尽管 convert source-with-alpha.png target.png
工作正常(但没有缩小)。
感谢您的帮助。
我猜 ImageMagick 正在尝试优化某些东西但不确定 what/why。也许这个想法是,如果某些东西是透明的,你就看不到它,所以我们不妨把它做成黑色,这样它压缩得很好。
无论如何,请尝试将频道分开,以便将它们全部视为独立频道,然后调整大小并重新组合:
convert input.png -channel RGBA -separate -resize XxY -combine result.png
我不确定我理解你的问题。使用 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
我用两个不同版本的 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”是可选的)
Post 您的一个 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
我正在使用 imagemagick 为视频游戏转换许多 3D 纹理。我的源文件是 png,我的目标文件也是 png。但我注意到,每当 alpha 通道下降到 0.0 时,我的颜色信息就消失了(我需要它们)。我只想按原样缩放所有频道。我想有一个小开关可以解决这个问题,但截止日期快到了,我找不到任何相关信息。
重现这个的简单命令:
convert source-with-alpha.png -scale 2014 target.png
(我也试过-resize
,还是不行)。
尽管 convert source-with-alpha.png target.png
工作正常(但没有缩小)。
感谢您的帮助。
我猜 ImageMagick 正在尝试优化某些东西但不确定 what/why。也许这个想法是,如果某些东西是透明的,你就看不到它,所以我们不妨把它做成黑色,这样它压缩得很好。
无论如何,请尝试将频道分开,以便将它们全部视为独立频道,然后调整大小并重新组合:
convert input.png -channel RGBA -separate -resize XxY -combine result.png
我不确定我理解你的问题。使用 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
我用两个不同版本的 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”是可选的)
Post 您的一个 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