下面是代码:
try
{
MyBitmap = (Bitmap)this.pictureBox1.Image.Clone();
int dw = MyBitmap.Width / 30;
int dh = MyBitmap.Height;
Graphics g = this.pictureBox1.CreateGraphics();
g.Clear(Color.Gray);
Point[] MyPoint = new Point[30];
for (int x = 0; x < 30; x++)
{
MyPoint[x].Y = 0;
MyPoint[x].X = x * dw;
}
Bitmap bitmap = new Bitmap(MyBitmap.Width, MyBitmap.Height);
for (int i = 0; i < dw; i++)
{
for (int j = 0; j < 30; j++)
{
for (int k = 0; k < dh; k++)
{
bitmap.SetPixel(MyPoint[j].X + i, MyPoint[j].Y + k, MyBitmap.GetPixel(MyPoint[j].X + i, MyPoint[j].Y + k));
}
}
this.pictureBox1.Refresh();
this.pictureBox1.Image = bitmap;
System.Threading.Thread.Sleep(100);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "信息提示");
} 请问这几行代码:
for (int i = 0; i < dw; i++)
{
for (int j = 0; j < 30; j++)
{
for (int k = 0; k < dh; k++)
{
bitmap.SetPixel(MyPoint[j].X + i, MyPoint[j].Y + k, MyBitmap.GetPixel(MyPoint[j].X + i, MyPoint[j].Y + k));
}
}
this.pictureBox1.Refresh();
this.pictureBox1.Image = bitmap;
System.Threading.Thread.Sleep(100);
}
是什么意思。小弟看不懂。请高手指教。
try
{
MyBitmap = (Bitmap)this.pictureBox1.Image.Clone();
int dw = MyBitmap.Width / 30;
int dh = MyBitmap.Height;
Graphics g = this.pictureBox1.CreateGraphics();
g.Clear(Color.Gray);
Point[] MyPoint = new Point[30];
for (int x = 0; x < 30; x++)
{
MyPoint[x].Y = 0;
MyPoint[x].X = x * dw;
}
Bitmap bitmap = new Bitmap(MyBitmap.Width, MyBitmap.Height);
for (int i = 0; i < dw; i++)
{
for (int j = 0; j < 30; j++)
{
for (int k = 0; k < dh; k++)
{
bitmap.SetPixel(MyPoint[j].X + i, MyPoint[j].Y + k, MyBitmap.GetPixel(MyPoint[j].X + i, MyPoint[j].Y + k));
}
}
this.pictureBox1.Refresh();
this.pictureBox1.Image = bitmap;
System.Threading.Thread.Sleep(100);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "信息提示");
} 请问这几行代码:
for (int i = 0; i < dw; i++)
{
for (int j = 0; j < 30; j++)
{
for (int k = 0; k < dh; k++)
{
bitmap.SetPixel(MyPoint[j].X + i, MyPoint[j].Y + k, MyBitmap.GetPixel(MyPoint[j].X + i, MyPoint[j].Y + k));
}
}
this.pictureBox1.Refresh();
this.pictureBox1.Image = bitmap;
System.Threading.Thread.Sleep(100);
}
是什么意思。小弟看不懂。请高手指教。
解决方案 »
- 按钮事件中如何能让对worm里的控件的操作立即执行
- 菜鸟上路,求高人指点一二。关于C#数字图像处理的
- update语句不能修改
- 标题栏Text缩略
- 在LINQ查询的where语句中将字符串转换为数字
- 已知像素数据,利用GDI+快速重建图像对象
- c#的MessageBox有没有JAVA里的JOptionPane返回值的功能?
- 关于使用UdpClient另开线程传文件,同一端口使用多次的问题
- 急!c# winform:如何在DataGrid最后一行中插入一条数据
- 初学c#,看什么书好呢??
- 如何用代码绑定textBox控件绑定到datagridview,且鼠标单击datagridview行时,textBox显示对应行的数据。
- C#调用 BCEncode.dll 无法生成位图
图像被水平分割了30等份,即30片百叶
for (int i = 0; i < dw; i++) //dw 一片百叶的宽度
{
for (int j = 0; j < 30; j++) //30片百叶
{
for (int k = 0; k < dh; k++) //一片百叶的高度
{
bitmap.SetPixel(MyPoint[j].X + i, MyPoint[j].Y + k, MyBitmap.GetPixel(MyPoint[j].X + i, MyPoint[j].Y + k));
}
} //到这里30片百叶都以从左到右的顺序绘制了1列
//然后显示到屏幕,显示100豪秒
this.pictureBox1.Refresh();
this.pictureBox1.Image = bitmap;
System.Threading.Thread.Sleep(100);
//继续绘制下一列
}
代码的意思,是通过几个分段的循环,通过GetPixel和SetPixel把目标图片上相应的区域绘制到新图片上.