当前位置: 首页 > 知识库问答 >
问题:

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

公孙胡媚
2023-03-14

我正在尝试脚本创建视频使用ImageMagick创建一些覆盖,然后放在一个视频的顶部。

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

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

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

关键问题:

我如何在GIMP中创建新文件时编写转换脚本,或者(更好的)一开始就不出错呢?

共有1个答案

易焱
2023-03-14

我建议您在使用ImageMagick时为输出文件名加上png32:的前缀,以强制它生成一个32位的ber像素图像--即R、G、B和Alpha各1个字节,并希望FFMPEG对此更满意。

convert input.png -draw ... PNG32:output.png

如果您在破碎图像和工作图像上运行identify-verbose(也在ImageMagick套件中),您将看到主要区别是工作图像具有color-type=6bit-depth=8,而破碎图像具有color-type=3(indexed)bit-depth=4

 类似资料:
  • 问题内容: 我想在另一幅图像上绘制部分透明的图像(在物体上形成阴影)。我目前正在使用Java的Graphics2D类进行渲染,有人告诉我将合成设置为AlphaComposite,但这仅将其设置为完全透明。 我可以使用当前设置进行此操作吗?我必须怎么做才能解决此问题? 这是我被告知可以使其部分透明的代码: (顺便说一句,我正在使用png图像) 这是您的sscce(它们都在不同的类中,但是为了简单起见

  • 问题内容: 如何绘制具有Alpha颜色的矩形?我有: 但是我希望白色矩形的透明度为50%,但是Alpha值似乎没有起作用。 问题答案: 函数将不使用Alpha绘制。该文件说: 大多数参数接受RGB三元组的color参数。这些也可以接受RGBA四联体。如果Alpha值包含像素Alpha,则它将直接写入Surface,但是draw函数不会透明地绘制。 您可以做的是创建第二个曲面,然后将其调高到屏幕上。

  • 我正在编写一个可视化洞穴的OpenGL程序,所以当我可视化地表地形时,我希望它是透明的,这样你就可以看到下面的洞穴了。我假设我可以将来自数字高程模型的数据归一化为一个网格,该网格以规则的间距对准x/z轴,并将每个网格单元格渲染为两个三角形。使用对齐的网格,我可以避免在应用画家的算法时进行排序的成本(以确保适当的透明度效果);相反,我可以逐行呈现单元格,从最远的行和每行最远的单元格开始。 这一切都很

  • 本文向大家介绍在Java Swing中创建半透明窗口,包括了在Java Swing中创建半透明窗口的使用技巧和注意事项,需要的朋友参考一下 使用JDK 7,我们可以非常容易地使用swing创建半透明的窗口。使用以下代码,可以使JFrame半透明。 示例 参见下面具有55%半透明性的窗口的示例。 输出结果

  • 问题内容: 我想在PDFBox中用透明线绘制线条和多边形。这是一些有关如何绘制蓝线的示例代码,但是我无法弄清楚更改颜色的Alpha值。 问题答案: 您不能使用的alpha值,因为PDFBox仅使用RGB值。根据它的javadoc 只是: 设置描边颜色,指定为RGB。 一种选择是将背景色设置为描边色,以使线条不可见。 注意- 不可见!=透明(因此您不会获得透视效果)

  • 对于需要图形分层的应用,经常需要处理透明度。本节,我们将学习如何使用全局透明度设置图形的透明度。 图2-5 绘制透明图形 绘制步骤 按照以下步骤,在一个不透明的矩形之上,绘制一个透明的圆: 1. 定义2D画布上下文: window.onload  = function(){ var canvas  = document.getElementById("myCanvas"); var co