Ffmpeg 从命令行使半个图像透明

Ffmpeg 从命令行使半个图像透明,ffmpeg,imagemagick,batch-processing,image-manipulation,gimp,Ffmpeg,Imagemagick,Batch Processing,Image Manipulation,Gimp,我真的不知道从哪里开始。我正在尝试用imagemagick做一些我认为相对简单的事情,但我不知道从哪个命令开始。我需要在图像中画一条线,然后使图像中线上方的所有内容都透明,并使线下方的所有内容都透明,即原始图像。使用imagemagick实现此目的的最佳方法是什么 因此,我现在想到的是裁剪图像,然后将其调整为原始大小,但使用透明背景。我使用的命令是这个,但它总是显示为黑色。我不明白为什么 convert-background none-gravity south out.png-resize 4

我真的不知道从哪里开始。我正在尝试用imagemagick做一些我认为相对简单的事情,但我不知道从哪个命令开始。我需要在图像中画一条线,然后使图像中线上方的所有内容都透明,并使线下方的所有内容都透明,即原始图像。使用imagemagick实现此目的的最佳方法是什么

因此,我现在想到的是裁剪图像,然后将其调整为原始大小,但使用透明背景。我使用的命令是这个,但它总是显示为黑色。我不明白为什么

convert-background none-gravity south out.png-resize 400x200-extent 400x400 result.png


谢谢你的帮助

这里有一个相当简单的方法。首先,在图像没有alpha通道的情况下启用alpha通道,然后通过以下
-fx
命令选择要修改的alpha通道。在那里,如果当前
j
大于图像高度的一半,则使alpha层不透明,否则透明。比听起来容易

因此,使用此开始图像:

或者,另一种方式:

convert bean.jpg -alpha on -channel A -fx "j<h/2?1:0" result.gif
convert bean.jpg -alpha on -channel A -fx "i<w/2?1:0" result.gif

这里有一个相当简单的方法。首先,在图像没有alpha通道的情况下启用alpha通道,然后通过以下
-fx
命令选择要修改的alpha通道。在那里,如果当前
j
大于图像高度的一半,则使alpha层不透明,否则透明。比听起来容易

因此,使用此开始图像:

或者,另一种方式:

convert bean.jpg -alpha on -channel A -fx "j<h/2?1:0" result.gif
convert bean.jpg -alpha on -channel A -fx "i<w/2?1:0" result.gif

尝试添加一个alpha通道,对于非透明度,其值为最大值;对于半透明度,其值为该值的一半。添加alpha通道可以通过将图像转换为RGBA来实现。@user236012这不是我想要的。我真的需要图像的下半部分是100%不透明的,上半部分是100%透明的。你需要添加一个遮罩。我现在不能测试,但这应该会给你一些想法:尝试添加一个alpha通道,其值对于非透明度为最大值,对于半透明度为该值的一半。添加alpha通道可以通过将图像转换为RGBA来实现。@user236012这不是我想要的。我真的需要图像的下半部分是100%不透明的,上半部分是100%透明的。你需要添加一个遮罩。我现在不能测试,但这应该会给你一些想法:太棒了!非常感谢。太神了非常感谢。