C#每天抄一点(23):图像翻转和拓展效果
23 Oct 2011Graphics.DrawImage 方法 (Image, Rectangle, Rectangle, GraphicsUnit)
在指定位置并且按指定大小绘制指定的 Image 的指定部分。
public void DrawImage(
Image image,
Rectangle destRect,
Rectangle srcRect,
GraphicsUnit srcUnit
)
image
类型:System.Drawing.Image
要绘制的 Image。
destRect
类型:System.Drawing.Rectangle
Rectangle 结构,它指定所绘制图像的位置和大小。 将图像进行缩放以适合该矩形。
srcRect
类型:System.Drawing.Rectangle
Rectangle 结构,它指定 image 对象中要绘制的部分。
srcUnit
类型:System.Drawing.GraphicsUnit
GraphicsUnit 枚举的成员,它指定 srcRect 参数所用的度量单位。
01 /*
02 * 由SharpDevelop创建。
03 * 用户: Lazynight
04 * 日期: 2011/10/23
05 * 时间: 17:30
06 *
07 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
08 */
09 using System;
10 using System.Collections.Generic;
11 using System.Drawing;
12 using System.Windows.Forms;
13
14 namespace Lazy23_图像翻转和拓展效果
15 {
16 public partial class MainForm : Form
17 {
18 Bitmap Night_bitmap;
19 public MainForm()
20 {
21 InitializeComponent();
22
23 }
24
25 void Button1Click(object sender, EventArgs e)
26 {
27 openFileDialog1.Filter=“*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf”;
28 //设置打开图像的类型
29 this.openFileDialog1.ShowDialog();//打开对话框
30 if(this.openFileDialog1.FileName.Trim()==“”)
31 return;
32 try
33 {
34 // 把打开的图像赋给Bitmap变量
35 Bitmap Lazy_src=new Bitmap(this.openFileDialog1.FileName);
36 Night_bitmap=new Bitmap(Lazy_src,this.pictureBox1.Width,this.pictureBox1.Height);
37 this.pictureBox1.Image=Night_bitmap;
38 //显示图像
39 }
40 catch(Exception Err)
41 {
42 // 提示对话框
43 MessageBox.Show(this,“打开图像文件错误~~”,“提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);
44 }
45 }
46
47 void Button2Click(object sender, EventArgs e)
48 {
49 int Lazy_ph=this.pictureBox1.Height;//图像高度
50 int Lazy_pw=this.pictureBox1.Width;//图像宽度
51 Graphics Lazy_pic =this.pictureBox1.CreateGraphics();
52 //创建Graphics对象实例
53 Lazy_pic.Clear(Color.Black);//初始为黑色
54 for(int y=-Lazy_ph/2;y<=Lazy_ph/2;y++)
55 {
56 Rectangle DestRect=new Rectangle(,Lazy_ph/2-y,Lazy_pw,2*y);
57 Rectangle SrcRect=new Rectangle(,,Night_bitmap.Width,Night_bitmap.Height);
58 Lazy_pic.DrawImage(Night_bitmap,DestRect,SrcRect,GraphicsUnit.Pixel);
59 System.Threading.Thread.Sleep(10);
60 }
61 }
62
63 void Button3Click(object sender, EventArgs e)
64 {
65 int Lazy_pw=this.pictureBox1.Width;//图像宽度
66 int Lazy_ph=this.pictureBox1.Height;//图形高度
67 Graphics Lazy_pic=this.pictureBox1.CreateGraphics();
68 //创建Graphics对象实例
69 Lazy_pic.Clear(Color.Black);//初始化黑色
70 for(int x=;x<=Lazy_pw/2;x++)
71 {
72 Rectangle DestRect=new Rectangle(Lazy_pw/2-x,Lazy_ph/2-x,2*x,2*x);
73 //此为目的图像区域。左顶点坐标随循环逐渐改变(Lazy_pw/2-x,Lazy_ph/2-x),矩形的宽高为2*x。
74 Rectangle SrcRect=new Rectangle(,,Night_bitmap.Width,Night_bitmap.Height);
75 //此为要绘制的图像区域
76 Lazy_pic.DrawImage(Night_bitmap,DestRect,SrcRect,GraphicsUnit.Pixel);
77 //绘图
78 System.Threading.Thread.Sleep(10);
79 //利用线程睡眠时间控制速度。
80
81 }
82 }
83 }
84 }
02 * 由SharpDevelop创建。
03 * 用户: Lazynight
04 * 日期: 2011/10/23
05 * 时间: 17:30
06 *
07 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
08 */
09 using System;
10 using System.Collections.Generic;
11 using System.Drawing;
12 using System.Windows.Forms;
13
14 namespace Lazy23_图像翻转和拓展效果
15 {
16 public partial class MainForm : Form
17 {
18 Bitmap Night_bitmap;
19 public MainForm()
20 {
21 InitializeComponent();
22
23 }
24
25 void Button1Click(object sender, EventArgs e)
26 {
27 openFileDialog1.Filter=“*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf”;
28 //设置打开图像的类型
29 this.openFileDialog1.ShowDialog();//打开对话框
30 if(this.openFileDialog1.FileName.Trim()==“”)
31 return;
32 try
33 {
34 // 把打开的图像赋给Bitmap变量
35 Bitmap Lazy_src=new Bitmap(this.openFileDialog1.FileName);
36 Night_bitmap=new Bitmap(Lazy_src,this.pictureBox1.Width,this.pictureBox1.Height);
37 this.pictureBox1.Image=Night_bitmap;
38 //显示图像
39 }
40 catch(Exception Err)
41 {
42 // 提示对话框
43 MessageBox.Show(this,“打开图像文件错误~~”,“提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);
44 }
45 }
46
47 void Button2Click(object sender, EventArgs e)
48 {
49 int Lazy_ph=this.pictureBox1.Height;//图像高度
50 int Lazy_pw=this.pictureBox1.Width;//图像宽度
51 Graphics Lazy_pic =this.pictureBox1.CreateGraphics();
52 //创建Graphics对象实例
53 Lazy_pic.Clear(Color.Black);//初始为黑色
54 for(int y=-Lazy_ph/2;y<=Lazy_ph/2;y++)
55 {
56 Rectangle DestRect=new Rectangle(,Lazy_ph/2-y,Lazy_pw,2*y);
57 Rectangle SrcRect=new Rectangle(,,Night_bitmap.Width,Night_bitmap.Height);
58 Lazy_pic.DrawImage(Night_bitmap,DestRect,SrcRect,GraphicsUnit.Pixel);
59 System.Threading.Thread.Sleep(10);
60 }
61 }
62
63 void Button3Click(object sender, EventArgs e)
64 {
65 int Lazy_pw=this.pictureBox1.Width;//图像宽度
66 int Lazy_ph=this.pictureBox1.Height;//图形高度
67 Graphics Lazy_pic=this.pictureBox1.CreateGraphics();
68 //创建Graphics对象实例
69 Lazy_pic.Clear(Color.Black);//初始化黑色
70 for(int x=;x<=Lazy_pw/2;x++)
71 {
72 Rectangle DestRect=new Rectangle(Lazy_pw/2-x,Lazy_ph/2-x,2*x,2*x);
73 //此为目的图像区域。左顶点坐标随循环逐渐改变(Lazy_pw/2-x,Lazy_ph/2-x),矩形的宽高为2*x。
74 Rectangle SrcRect=new Rectangle(,,Night_bitmap.Width,Night_bitmap.Height);
75 //此为要绘制的图像区域
76 Lazy_pic.DrawImage(Night_bitmap,DestRect,SrcRect,GraphicsUnit.Pixel);
77 //绘图
78 System.Threading.Thread.Sleep(10);
79 //利用线程睡眠时间控制速度。
80
81 }
82 }
83 }
84 }
转载请注明:于哲的博客 » C#每天抄一点(23):图像翻转和拓展效果