C#每天抄一点(22):图像百叶窗效果
23 Oct 2011
001 /*
002 * 由SharpDevelop创建。
003 * 用户: Lazynight
004 * 日期: 2011/10/23
005 * 时间: 10:42
006 *
007 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
008 */
009 using System;
010 using System.Collections.Generic;
011 using System.Drawing;
012 using System.Windows.Forms;
013
014 namespace Lazy22_图像百叶窗效果
015 {
016 public partial class MainForm : Form
017 {
018 Bitmap Night_bitmap;
019 public MainForm()
020 {
021 InitializeComponent();
022
023 }
024
025 void Button1Click(object sender, EventArgs e)
026 {
027 openFileDialog1.Filter=“*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf”;
028 // 设置打开图像的类型
029 this.openFileDialog1.ShowDialog();//显示对话框
030 if(this.openFileDialog1.FileName.Trim()==“”)
031 return;
032 try
033 { //把打开的图像赋给Bitmap变量
034 Bitmap Lazy_bitmap=new Bitmap(this.openFileDialog1.FileName);
035 Night_bitmap=new Bitmap(Lazy_bitmap,this.pictureBox1.Width,this.pictureBox1.Height);
036 this.pictureBox1.Image=Night_bitmap;//显示图像
037 }
038 catch
039 {
040 //提示
041 MessageBox.Show(this,“打开图像文件错误~”,“提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);
042 }
043 }
044
045 void Button2Click(object sender, EventArgs e)
046 {
047 Night_bitmap=(Bitmap)this.pictureBox1.Image.Clone();
048 int Lazy_ph=Night_bitmap.Height/20;//将图像高度均分为20分
049 int Lazy_pw=Night_bitmap.Width;//宽度不分
050 Graphics Lazy_pic=this.pictureBox1.CreateGraphics();//定义Graphics对象实例
051 Lazy_pic.Clear(Color.Black);//初始化黑色
052 Point[] Lazy_point=new Point[20];//定义点数组
053 for(int y=;y<20;y++)
054 {
055 Lazy_point[y].X=;
056 Lazy_point[y].Y=Lazy_ph*y;
057 //此为20个小矩形的左顶点
058 }
059 Bitmap Day_bitmap=new Bitmap(Night_bitmap.Width,Night_bitmap.Height);
060 for(int i=;i<Lazy_ph;i++)
061 {
062 for(int y=;y<20;y++)
063 {
064 for(int k=;k<Lazy_pw;k++)
065 {
066 Day_bitmap.SetPixel(Lazy_point[y].X+k,Lazy_point[y].Y+i,Night_bitmap.GetPixel(Lazy_point[y].X+k,Lazy_point[y].Y+i));
067 //每一行自左向右填充每个点的像素,重复图形宽度大小的次数
068 }
069 }
070 this.pictureBox1.Refresh();//刷新图像
071 this.pictureBox1.Image=Day_bitmap;
072 System.Threading.Thread.Sleep(100);
073 }
074 }
075
076 void Button3Click(object sender, EventArgs e)
077 {
078 Night_bitmap=(Bitmap)this.pictureBox1.Image.Clone();
079 int Lazy_ph=Night_bitmap.Height;//高度不分
080 int Lazy_pw=Night_bitmap.Width/30;//将图像宽度均分为30分
081 Graphics Lazy_pic=this.pictureBox1.CreateGraphics();//定义Graphics对象实例
082 Lazy_pic.Clear(Color.Black);//初始化黑色
083 Point[] Lazy_point=new Point[30];//定义点数组
084 for(int x=;x<30;x++)
085 {
086 Lazy_point[x].Y=;
087 Lazy_point[x].X=Lazy_pw*x;
088 //此为30个小矩形的左顶点
089 }
090 Bitmap Day_bitmap=new Bitmap(Night_bitmap.Width,Night_bitmap.Height);
091 for(int i=;i<Lazy_pw;i++)
092 {
093 for(int x=;x<30;x++)
094 {
095 for(int k=;k<Lazy_ph;k++)
096 {
097 Day_bitmap.SetPixel(Lazy_point[x].X+i,Lazy_point[x].Y+k,Night_bitmap.GetPixel(Lazy_point[x].X+i,Lazy_point[x].Y+k));
098 //每一行自上向下填充每个点的像素,重复图形高度大小的次数
099 }
100 }
101 this.pictureBox1.Refresh();//刷新图像
102 this.pictureBox1.Image=Day_bitmap;
103 System.Threading.Thread.Sleep(100);
104 }
105 }
106 }
107 }
002 * 由SharpDevelop创建。
003 * 用户: Lazynight
004 * 日期: 2011/10/23
005 * 时间: 10:42
006 *
007 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
008 */
009 using System;
010 using System.Collections.Generic;
011 using System.Drawing;
012 using System.Windows.Forms;
013
014 namespace Lazy22_图像百叶窗效果
015 {
016 public partial class MainForm : Form
017 {
018 Bitmap Night_bitmap;
019 public MainForm()
020 {
021 InitializeComponent();
022
023 }
024
025 void Button1Click(object sender, EventArgs e)
026 {
027 openFileDialog1.Filter=“*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf”;
028 // 设置打开图像的类型
029 this.openFileDialog1.ShowDialog();//显示对话框
030 if(this.openFileDialog1.FileName.Trim()==“”)
031 return;
032 try
033 { //把打开的图像赋给Bitmap变量
034 Bitmap Lazy_bitmap=new Bitmap(this.openFileDialog1.FileName);
035 Night_bitmap=new Bitmap(Lazy_bitmap,this.pictureBox1.Width,this.pictureBox1.Height);
036 this.pictureBox1.Image=Night_bitmap;//显示图像
037 }
038 catch
039 {
040 //提示
041 MessageBox.Show(this,“打开图像文件错误~”,“提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);
042 }
043 }
044
045 void Button2Click(object sender, EventArgs e)
046 {
047 Night_bitmap=(Bitmap)this.pictureBox1.Image.Clone();
048 int Lazy_ph=Night_bitmap.Height/20;//将图像高度均分为20分
049 int Lazy_pw=Night_bitmap.Width;//宽度不分
050 Graphics Lazy_pic=this.pictureBox1.CreateGraphics();//定义Graphics对象实例
051 Lazy_pic.Clear(Color.Black);//初始化黑色
052 Point[] Lazy_point=new Point[20];//定义点数组
053 for(int y=;y<20;y++)
054 {
055 Lazy_point[y].X=;
056 Lazy_point[y].Y=Lazy_ph*y;
057 //此为20个小矩形的左顶点
058 }
059 Bitmap Day_bitmap=new Bitmap(Night_bitmap.Width,Night_bitmap.Height);
060 for(int i=;i<Lazy_ph;i++)
061 {
062 for(int y=;y<20;y++)
063 {
064 for(int k=;k<Lazy_pw;k++)
065 {
066 Day_bitmap.SetPixel(Lazy_point[y].X+k,Lazy_point[y].Y+i,Night_bitmap.GetPixel(Lazy_point[y].X+k,Lazy_point[y].Y+i));
067 //每一行自左向右填充每个点的像素,重复图形宽度大小的次数
068 }
069 }
070 this.pictureBox1.Refresh();//刷新图像
071 this.pictureBox1.Image=Day_bitmap;
072 System.Threading.Thread.Sleep(100);
073 }
074 }
075
076 void Button3Click(object sender, EventArgs e)
077 {
078 Night_bitmap=(Bitmap)this.pictureBox1.Image.Clone();
079 int Lazy_ph=Night_bitmap.Height;//高度不分
080 int Lazy_pw=Night_bitmap.Width/30;//将图像宽度均分为30分
081 Graphics Lazy_pic=this.pictureBox1.CreateGraphics();//定义Graphics对象实例
082 Lazy_pic.Clear(Color.Black);//初始化黑色
083 Point[] Lazy_point=new Point[30];//定义点数组
084 for(int x=;x<30;x++)
085 {
086 Lazy_point[x].Y=;
087 Lazy_point[x].X=Lazy_pw*x;
088 //此为30个小矩形的左顶点
089 }
090 Bitmap Day_bitmap=new Bitmap(Night_bitmap.Width,Night_bitmap.Height);
091 for(int i=;i<Lazy_pw;i++)
092 {
093 for(int x=;x<30;x++)
094 {
095 for(int k=;k<Lazy_ph;k++)
096 {
097 Day_bitmap.SetPixel(Lazy_point[x].X+i,Lazy_point[x].Y+k,Night_bitmap.GetPixel(Lazy_point[x].X+i,Lazy_point[x].Y+k));
098 //每一行自上向下填充每个点的像素,重复图形高度大小的次数
099 }
100 }
101 this.pictureBox1.Refresh();//刷新图像
102 this.pictureBox1.Image=Day_bitmap;
103 System.Threading.Thread.Sleep(100);
104 }
105 }
106 }
107 }
转载请注明:于哲的博客 » C#每天抄一点(22):图像百叶窗效果