C#图像的透明处理
C_图像的透明处理
的图示如下:
图2
完成了窗体布局,我们接着开始编写代码。首先,我们添加窗体的Paint消息响应函数。读者可以发现,我们在进行窗体布局的时候并没有在窗体上添加pictureBox控件,那么我们怎么显示图像并画出各种图形呢?这就要用到窗体的Paint消息响应函数了,函数实现如下:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
DrawPerson();
//画一幅图像
Image curImage = Image.FromFile(@"e:\photo.jpg");
g.DrawImage(curImage, 0, 0, curImage.Width, curImage.Height);
g.Dispose();
}
(注:其中的e:\photo.jpg为笔者电脑上图像文件的路径,读者可以将它改为自己电脑上图像文件的路径,下同。该文件可在源代码文件夹中找到。)
在上面的函数中,我们先建立了一个Graphics对象,该对象就是专门用来画图形和图像的。我们还调用了本类的一个私有成员函数DrawPerson(),该函数实现的功能就是在窗体上画一些图形,这些图形包括了椭圆、曲线、三角形,而这些图形合在一起恰好构成了一个人的头部轮廓,所以我姑且将该函数命名为了DrawPerson()。在调用完毕后,就在窗体上画出一幅图像(用一个图像文件完成)。最后就是Graphics对象的Dispose工作。其中,DrawPerson()函数的具体实现如下:
private void DrawPerson()
{
Graphics g = this.CreateGraphics();
g.Clear(this.BackColor);
//画人头轮廓
Rectangle rect1 = new Rectangle(75, 0, 150, 200);
g.FillEllipse(new SolidBrush(Color.FromArgb(225, 155, 150, 25)), rect1);


