一、基礎概念
C# Graphics是一種圖形編程技術,可以用於繪製各種形狀、文本、圖像、動畫等。它是GDI+的一部分,提供了豐富的繪製方法,可以在窗體、控件等對象上繪製圖形。
GDI+是一個應用程序編程接口,可以在Windows操作系統中實現高級繪圖和打印。Graphics對象是GDI+繪圖實現的基礎,通過Graphics對象可以實現各種圖形繪製。在C#中,我們可以通過System.Drawing名稱空間中的Graphics類來使用GDI+的各種繪圖能力。
下面是一個簡單的C# Graphics程序代碼示例:
using System.Drawing;
using System.Windows.Forms;
namespace MyGraphicsProgram
{
public partial class Form1 : Form
{
private Graphics graphics;
public Form1()
{
InitializeComponent();
graphics = this.CreateGraphics();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Pen pen = new Pen(Color.Black, 1);
graphics.DrawLine(pen, 10, 10, 100, 100);
}
}
}
上述程序會在窗體上繪製一條直線。
二、繪製基本圖形
C# Graphics提供了豐富的繪製方法,可以繪製各種基本圖形,比如矩形、橢圓、圓形、扇形、多邊形等等。
1、矩形
在C# Graphics中,繪製矩形使用的是Rectangle類,繪製方法是DrawRectangle。以下是一個繪製紅色矩形的代碼示例:
private void DrawRectangle()
{
Pen pen = new Pen(Color.Red, 2);
graphics.DrawRectangle(pen, 10, 10, 100, 50);
}
2、橢圓
在C# Graphics中,繪製橢圓使用的是Ellipse類,繪製方法是DrawEllipse。以下是一個繪製灰色橢圓的代碼示例:
private void DrawEllipse()
{
Pen pen = new Pen(Color.Gray, 2);
graphics.DrawEllipse(pen, 10, 10, 100, 50);
}
3、圓形
在C# Graphics中,繪製圓形使用的是Ellipse類,繪製方法是DrawEllipse。以下是一個繪製藍色圓形的代碼示例:
private void DrawCircle()
{
Pen pen = new Pen(Color.Blue, 2);
graphics.DrawEllipse(pen, 10, 10, 50, 50);
}
4、扇形
在C# Graphics中,繪製扇形使用的是GraphicsPath類和DrawPath方法。以下是一個繪製綠色扇形的代碼示例:
private void DrawPie()
{
Pen pen = new Pen(Color.Green, 2);
GraphicsPath path = new GraphicsPath();
path.AddPie(10, 10, 100, 100, 30, 120);
graphics.DrawPath(pen, path);
}
5、多邊形
在C# Graphics中,繪製多邊形使用的是GraphicsPath類和DrawPath方法。以下是一個繪製紫色多邊形的代碼示例:
private void DrawPolygon()
{
Pen pen = new Pen(Color.Purple, 2);
Point[] points = new Point[] { new Point(10, 10), new Point(50, 10), new Point(50, 50), new Point(30, 70), new Point(10, 50) };
GraphicsPath path = new GraphicsPath();
path.AddPolygon(points);
graphics.DrawPath(pen, path);
}
三、圖像處理
C# Graphics也可以用於圖像處理,比如縮放、旋轉、剪切、裁剪等等。下面分別介紹一下這些操作。
1、縮放
在C# Graphics中,使用的是DrawImage方法。以下是一個縮小圖像的代碼示例:
private void ScaleImage()
{
Image image = Image.FromFile("test.jpg");
int width = image.Width / 2;
int height = image.Height / 2;
graphics.DrawImage(image, new Rectangle(10, 10, width, height));
}
2、旋轉
在C# Graphics中,使用的是RotateTransform方法。以下是一個旋轉圖像的代碼示例:
private void RotateImage()
{
Image image = Image.FromFile("test.jpg");
int angle = 45;
graphics.TranslateTransform(50, 50);
graphics.RotateTransform(angle);
graphics.DrawImage(image, new Rectangle(-image.Width / 2, -image.Height / 2, image.Width, image.Height));
graphics.ResetTransform();
}
3、剪切
在C# Graphics中,使用的是DrawImage方法和Clip屬性。以下是一個剪切圖像的代碼示例:
private void CutImage()
{
Image image = Image.FromFile("test.jpg");
int x = 50;
int y = 50;
int width = 100;
int height = 100;
Rectangle rect = new Rectangle(x, y, width, height);
graphics.DrawImage(image, new Rectangle(10, 10, width, height), rect, GraphicsUnit.Pixel);
}
4、裁剪
在C# Graphics中,使用的是DrawImage方法和SetClip方法。以下是一個裁剪圖像的代碼示例:
private void CropImage()
{
Image image = Image.FromFile("test.jpg");
int x = 50;
int y = 50;
int width = 100;
int height = 100;
graphics.SetClip(new Rectangle(x, y, width, height));
graphics.DrawImage(image, new Rectangle(10, 10, image.Width, image.Height));
graphics.ResetClip();
}
四、其他常用方法
除了上述的圖形繪製和圖像處理方法外,C# Graphics還有其他常用的方法。
1、繪製文本
在C# Graphics中,使用的是DrawString方法。以下是一個繪製文本的代碼示例:
private void DrawText()
{
Font font = new Font("Arial", 12);
Brush brush = new SolidBrush(Color.Black);
graphics.DrawString("Hello, World!", font, brush, new PointF(10, 10));
}
2、繪製圖像
在C# Graphics中,使用的是DrawImage方法。以下是一個繪製圖像的代碼示例:
private void DrawImage()
{
Image image = Image.FromFile("test.jpg");
graphics.DrawImage(image, new Rectangle(10, 10, image.Width, image.Height));
}
3、設置畫筆樣式
在C# Graphics中,使用的是Pen類。以下是一個繪製虛線圓形的代碼示例:
private void SetPenStyle()
{
Pen pen = new Pen(Color.Blue, 2);
pen.DashStyle = DashStyle.Dash;
graphics.DrawEllipse(pen, new Rectangle(10, 10, 50, 50));
}
五、總結
本文介紹了C# Graphics的基礎概念、繪製基本圖形、圖像處理、其他常用方法等內容。通過本文的學習,讀者可以掌握C# Graphics的基本用法,並且可以實現各種圖形繪製和圖像處理的功能。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297793.html
微信掃一掃
支付寶掃一掃