我正在使用WinForms。 我的表单中有一个图片框。 当我在图片框中打开一张图片时,我可以通过单击按钮来反转颜色,但我的代码非常缓慢。 如何提高性能。
private void Button1_Click(object sender, System.EventArgs e)
{
Bitmap pic = new Bitmap(PictureBox1.Image);
for (int y = 0; (y
<= (pic.Height - 1)); y++) {
for (int x = 0; (x
<= (pic.Width - 1)); x++) {
Color inv = pic.GetPixel(x, y);
inv = Color.FromArgb(255, (255 - inv.R), (255 - inv.G), (255 - inv.B));
pic.SetPixel(x, y, inv);
PictureBox1.Image = pic;
}
}
}
Get
/SetPixel
速度非常慢。搜索LockBits
并使用它-您可以获得快几个数量级的结果。 - Lucas Trzesniewski