在这种正常情况下,当我们需要在另一个图像上合成图像时,我们使用:
exec("convert 1.jpg 2.jpg -geometry +0+0 -compose DstOver -composite result.jpg);
和0,0点是图片左侧站点的起始行。 我需要从右侧使用我的点,例如我有一个500px高度和500px宽度的jpg文件,我需要从500,0合成image2。这不好,因为如果你的image2文件的高度和宽度都是100px的100px,你的结果在视图中没有任何变化。
我的目标是从图像的右侧构图,因为我的图像2每次都有不同的宽度和高度。
我的意思是我需要从3点和4点像图片一样构图。 我尝试Imagemagick place image in bottom right corner,但这个解决方案由SouthEast,SouthWest和......组成。 我需要使用我的几何尺寸和点..
对于固定大小的图像我没有任何问题,但我用imagemagick创建文本,它可能有1个字符或更多,在这种情况下,我的png文本的宽度有不同的大小。
修改: 事实上,我从输入中获取文本并使用不同的长度,然后用背景图片组成:
好吧,我需要和#34;示例文本2"的右上角一起撰写。喜欢图片,而不是像#34; Text1" 当我创建文本png文件时,它可能由不同的宽度和高度创建。 (对不起,我不能解释得更好,抱歉我的英语不好)
答案 0 :(得分:1)
<强>被修改强>
好的,我越来越了解你想要什么,首先观察的是,如果你指定-gravity
那么geometry
中的偏移是相对于重力的 - 它会移动重叠的图像INWARDS重力角是您在几何体偏移中指定的量。因此,让我们首先将重力设置为NorthEast,将叠加层放在右上角:
convert background.jpg overlay.jpg -gravity northeast -composite out.jpg
现在让我们获取叠加层的宽度并使用它来计算所需的几何图形,假设您希望叠加图像的右边缘距背景的右边缘50像素:<\ n / p>
geom=$(convert overlay.jpg -print "+%[fx:w+50]+0" null:)
echo $geom # this is just to show what is happening - you don't need it
+150+0
convert background.jpg overlay.jpg -gravity northeast -geometry $geom -composite out.jpg
当然,您可以在一个命令中执行此操作:
convert background.jpg overlay.jpg -gravity northeast -geometry $(convert overlay.jpg -print "+%[fx:w+50]+0" null:) -composite out.jpg
原始答案
我很抱歉,但我仍然不明白你在问什么,所以我会回答我的意思,也许你可以解释我的理解有什么不妥。
convert -size 500x500! xc:red background.jpg # make a big red background
convert -size 100x100! xc:blue overlay.jpg # make a smaller blue overlay
# place overlay on image at desired position
convert background.jpg overlay.jpg -geometry +360+40 -composite out.jpg