我希望在图片的特定位置添加文本,并使其居中对齐。我该如何指定从顶部的边距?我想要指定从顶部以像素/英寸为单位的边距。
目前我正在使用以下命令:
convert temp.jpg -gravity Center -pointsize 30 -annotate 0 'Love you mom' temp1.jpg
这是将文本写在图像中心。我希望文本移动到顶部。
现在的效果是这样的:
我想要的效果是这样的:
我希望在图片的特定位置添加文本,并使其居中对齐。我该如何指定从顶部的边距?我想要指定从顶部以像素/英寸为单位的边距。
目前我正在使用以下命令:
convert temp.jpg -gravity Center -pointsize 30 -annotate 0 'Love you mom' temp1.jpg
这是将文本写在图像中心。我希望文本移动到顶部。
现在的效果是这样的:
我想要的效果是这样的:
尝试使用-gravity North
(这将把您的文本移动到图像顶部),然后添加偏移量(-annotate +0+100
)来向下移动您的文本:
convert temp.jpg -gravity North -pointsize 30 -annotate +0+100 'Love you mom' temp1.jpg
相反,您可以使用-draw指定文本的位置。
例如:
convert -font helvetica -fill white -pointsize 60 -gravity center -draw "text 0,300 'TEXT TO BE DISPLAYED'" /image_address/Image_input.png /image_address/Image_output.png
在这种情况下,0是x坐标,300是y坐标,但是由于重心已经在那里,因此x坐标并不重要。请记住,坐标0,0是左上角。
convert -pointsize 40 -fill blue -draw 'text 600,600 "Love You Mom"' temp1.jpg temp2.jpg
^ ^
| |
From Left |
From Top
-draw 'text X, Y "爱你,妈妈"'
。 - Paul有几种方法可以在图像上添加文本。以下是使用Magick.NET
和C#
的答案:
Annotate()
函数:
image.Annotate(someText, new MagickGeometry(x, y, width, height), Gravity.Center)
Composite
函数和new MagickImage("caption:...")
功能的组合。您可以在另一张图片上覆盖一张图片。您可以创建一个文本标题图像,该图像将放置在原始图像的顶部:
MagickReadSettings readSettings = new MagickReadSettings()
{
Font = someFont,
Width = 868,
Height = 180,
TextGravity = Gravity.North
};
using (var overlayImage = new MagickImage("caption:" + someText, readSettings))
{
originalImage.Composite(overlayImage, Gravity.South, x, y);
}
DrawableText
,您可以在图像上的任何位置绘制文本:
DrawableTextAlignment centerAligned = new DrawableTextAlignment(TextAlignment.Center);
DrawableText drawableText = new DrawableText(x, y, someText);
image.Draw(drawableText, centerAligned);