如何从左下角到右上角绘制字符串到图像

时间:2013-01-18 20:38:20

标签: c# asp.net graphics system.drawing

这是我的代码:

 Graphics g = Graphics.FromImage(newImage);

  var myBrush = new SolidBrush(Color.FromArgb(32, 205, 205, 205));
   g.DrawString(label, new Font("verdana", 10, GraphicsUnit.Pixel), myBrush, 10,10);

将字符串放在图像上并不能很好地工作。这段代码可以很好地编写,但是我无法将字符串从左边的底部角落放到右上角。你有什么建议吗?

2 个答案:

答案 0 :(得分:1)

g.RotateTransform(45f);

仅在此之后

g.DrawString(label, new Font("verdana", 10, GraphicsUnit.Pixel), myBrush, 10,10);

但那只会旋转45度。根据您的按钮大小和文本长度(可使用MeasureString方法计算),您需要调整文本的角度和位置。我希望你喜欢几何。

http://msdn.microsoft.com/en-us/library/system.drawing.graphics.rotatetransform(v=vs.100).aspx

为了移动绘制字符串的位置,您需要使用图形对象的TranslateTransform(dx,dy)方法。

http://msdn.microsoft.com/en-us/library/6a1d65f4(v=vs.100).aspx

因此,要在中心绘制字符串,您需要调用translate然后旋转然后绘制。如果效果不好,请尝试更改旋转和翻译的顺序。

答案 1 :(得分:0)

如果找到对角线(不应该很硬)的图像,只需将Button的背景图像属性设置为图像即可。它的代码与此类似:

button1.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.img2));

我相信有一些属性可用于拉伸图像和内容,以防它没有正确排列。