C#图形类Graphics的几种方法
2023-07-31 本文已影响0人
大龙10
如果你想在C#窗体上进行绘画。通常会使用以下方法。
1、方法1
利用控件或窗体的paint事件中的painEventArgs
private void form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;//创建画板,
}
2、方法2
直接重载控件或窗体的OnPaint方法
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
}
3、方法3
调用某控件的CreateGraphics方法
Graphics g = this.CreateGraphics();
4、方法4
调用Graphics类的FromImage静态方法。
在需要更改已存在的图像时,通常会使用此方法
Image img = Image.FromFile("g1.jpg");//建立Image对象
Graphics g = Graphics.FromImage(img);//创建Graphics对象
5、实例
public Bitmap Create(int[] arry)
{
//获得数组中最大值
int max = 0;
for (int i = 0; i < arry.Length; i++)
{
if (arry[i] > max)
max = arry[i];
}
Bitmap bitmap = new Bitmap(arry.Length*2+1, max + 10);
Graphics g = Graphics.FromImage(bitmap);//创建Graphics对象
g.Clear(Color.White);
Pen curPen = new Pen(Brushes.Red, 1);
// g.DrawLine(curPen, 10, 0, 10, 30); //划线 ; 水平坐标形同 10,0,10,30; y坐标不同
for (int i = 0; i < arry.Length; i++)
{
g.DrawLine(curPen, i*2, arry[i], i*2, 0); //划线 ; 水平坐标形同 10,0,10,30; y坐标不同
}
return bitmap;
}
private void uiButton1_Click(object sender, EventArgs e)
{
int[] arry= { 0, 1,3,7,9,20,12,30,18,40,25,100,78,90,50,21};
Bitmap mybitmap = Create(arry);
picBoxShowDel.Image = mybitmap;
}
运行结果
6、资料
enych的博客:
https://www.cnblogs.com/enych/p/10544592.html