如何使用 ffmpeg 将图像的一部分替换为透明多边形

如何使用 ffmpeg 将图像的一部分替换为透明多边形

我想用透明多边形替换 png 图像的一部分。我尝试在 mac 终端中使用 ffmpeg 工具。

我尝试过以下命令。但这会画出一个黑色矩形,而不是透明的矩形:ffmpeg -i hemma_bil_2200_crop.png -filter_complex "crop=1344:1200:50:50, drawbox=50:50:100:200:#00000000@1:fill" output.png

  1. 我的目标是让它透明而不是黑色
  2. 如果可能的话,我想画一个多边形而不是矩形。我想要的多边形是右侧稍微倾斜的矩形,即底部应该比顶部稍长。

答案1

使用通用方程过滤器

  1. 长方形

    ffmpeg -i in.png -lavfi "
    format=rgba,
    geq=lum='p(X,Y)'
    :a='if(between(X,100,150),0,255)+if(between(Y,200,250),0,255)'
    " -frames:v 1 out.png
    
  2. 右侧倾斜

    ffmpeg -i "in.png" -lavfi "
    format=rgba,
    geq=lum='p(X,Y)'
    :a='if(between(X,100,150+(Y-200)/3),0,255)+if(between(Y,200,250),0,255)'
    " -frames:v 1 out.png
    

相关内容