gpt4 book ai didi

bash - 将图像 A 的一圈复制到图像 B 中

转载 作者:行者123 更新时间:2023-12-02 17:22:32 26 4
gpt4 key购买 nike

我有两张图片:

  • a.jpg
  • b.jpg

两张图片都是正方形(100x100 像素)。我想从图像 a.jpg 中剪切一个半径为 50 的圆,并将其粘贴到图像 b.jpg 的中间。我想将结果保存在 c.jpg 中。

如何使用 Linux 命令行工具执行此操作?我需要在 shell 脚本中完成它。

最佳答案

可以使用许多不同的技术。 ImageMagick 有 FX language可以执行复杂的计算。

convert a.jpg b.jpg -fx 'Wi=w/2; Hi=h/2; hypot(Wi-i, Hi-j) < 50 ? u : v' c.jpg

例如……

convert -size 100x100 PLASMA: a.jpg

a.jpg

convert -size 100x100 GRADIENT:LIME-ORANGE b.jpg

b.jpg

convert a.jpg b.jpg -fx 'hypot(50-i, 50-j) < 50 ? u : v' c.jpg

c.jpg

用另一种技术更新。

一种更快的方法是利用您希望裁剪的形状的图像 mask ,并在两个图像之间合成/合成它。它将需要一种支持 alpha channel 的格式,但仅用于初始工作。例如……

创建一个圆形 mask ,并将值复制到 alpha channel 。

convert -size 100x100 xc:White -fill Black \
-draw 'circle 50 50 50 5' -alpha Copy mask.png

mask.png

convert \( a.png mask.png -alpha Set -compose Dst_Out -composite \) \
b.png -compose Dst_Atop -composite c.png

c.png

关于bash - 将图像 A 的一圈复制到图像 B 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com