CodeGo.net>将ScaleTransform应用于图形GDI
作者:互联网
我已经将这个简单的代码放在一起画一条线.现在,我想对它应用ScaleTransform乘以10;但是下面的代码不起作用.
var bitmap = new Bitmap(pictureBox1.Size.Width, pictureBox1.Size.Height);
var g = Graphics.FromImage(bitmap);
pictureBox1.Image = bitmap;
var pn = new Pen(Color.Wheat, -1);
g.DrawLine(pn, 0, 0, 10, 10);
pn.Dispose();
// I'm trying to scaletransform here!
g.ScaleTransform(10, 10);
更新:
更新更改的正确方法是什么?我没有得到任何结果:(
g.ScaleTransform(1, 1);
pictureBox1.Invalidate();
解决方法:
您必须在画线之前应用转换!
var g = Graphics.FromImage(bitmap);
g.ScaleTransform(10, 10);
using (pn = new Pen(Color.Wheat, -1)) {
g.DrawLine(pn, 0, 0, 10, 10);
}
转换被应用于图形对象的转换矩阵(g.Transform).
还可以使用using语句来配置资源.如果发生异常,或者在using语句块中留有return或break语句,它甚至会处理笔.
标签:gdi-2,scaletransform,c 来源: https://codeday.me/bug/20191121/2055684.html