我想为图片添加文字,因为文字太长,所以我需要检查text.width> image.width,如果是,我需要自动newline.also我需要检查text.height> image.height,如果是,我需要其他图像来绘制text.i也在图像上绘制文字。
public int makePictrue(string address, string pictrueAddress, string[] str, int[][] intPoint, Font font, SolidBrush solidB)
{
try
{
for (int i = 0; i < str.Length; i++)
{
Bitmap bmp;
if (pictrueAddress.Trim() == "")
{
bmp = new Bitmap("1.jpg");
}
else
{
bmp = new Bitmap(pictrueAddress);
}
g = Graphics.FromImage((Image)bmp);
g.DrawString(str[i], font, solidB, intPoint[i][0], intPoint[i][1]);
MemoryStream stream = new MemoryStream();
bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);
bitmap = bmp;
}
return 1;
}
catch (Exception ex)
{
return 0;
}
}
答案 0 :(得分:1)
使用MeasureString获取要绘制的文本的大小,您需要指定要绘制的字体,而不是将原点指向绘制,以便在其中绘制矩形。
g.MeasureString()
您可以使用StringFormat设置一些文本绘图选项,如NoClip,NoWrap ...