将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
语句来处理资源。 如果发生exception,或者如果using
语句块应该留下return
或break
语句,它甚至会处理笔。