在Imagemagick中创建的透明PNG在FFMPEG中绘制为不透明

时间:2015-02-22 20:14:14

标签: ffmpeg imagemagick transparency

我正在尝试使用ImageMagick创建视频,以创建一些叠加层,然后放置在视频之上。

如果我尝试直接使用ImageMagick创建的图像,则透明度将被绘制为不透明。

我使用ImageMagick绘制命令创建了一个透明的PNG。当加载到GIMP并进行检查时,PNG具有alpha通道,并且每个透明像素看起来都具有透明度:RGBA = 0,0,0,0

此图像在ffmpeg中用作叠加层时,视频中只有一个不透明的黑色背景。

如果我再次从GIMP导出图像,则文件看起来完全相同,但在视频中只显示为纯蓝色(叠加图像中图形的颜色)。

我可以通过获取叠加图像,将其加载到GIMP中然后选择全部并从剪贴板创建新图像并将其导出(使用与我之前重新导出时完全相同的设置而不创建新文件)来解决此问题。然后它将完全按照需要工作,显示覆盖层的非透明部分,而不显示透明部分。

关键问题:

如何编写在GIMP中创建新文件时以某种方式发生的转换的脚本,或者(更好)首先没有出错?

以下是两个文件:

BROKEN: This does not work 作品: This one does work 有什么区别?

1 个答案:

答案 0 :(得分:2)

我建议您在使用带有PNG32:的ImageMagick时强制输出文件名,以强制它生成32位像素图像 - 即R,G,B和Alpha各1个字节,并希望{{1对此感到高兴。

ffmpeg

如果您在损坏的工作图像上运行convert input.png -draw ... PNG32:output.png (也在ImageMagick套件中),您会发现主要区别在于工作图像有identify -verbosecolor-type=6而破碎的图片有bit-depth=8color-type=3 (indexed)

enter image description here