【发布时间】:2015-10-09 15:07:56
【问题描述】:
我正在使用 Winforms。在我的表单中,我有一个图片框,用于加载 tiff 文档。我使用下面的代码在按钮单击时在文档中来回反转颜色。我的代码的问题是,它非常慢。如何更快地转换图像的颜色?
图片信息:
- 图像尺寸:8.5 x 11 英寸
- 像素密度:300 x 300 像素/英寸
-
像素尺寸 - 2550 x 3300 像素(通常是因为我打开不同的文档进行查看)
private void button1_Click(object sender, 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; }
【问题讨论】:
-
您是否尝试搜索类似 "invert color fast c#" 之类的内容? Click.
-
需要多少时间?图片的平均高度和宽度是多少?
-
好吧,您的代码会在每个像素上进行迭代,以便在单击按钮后再次反转。您是否想过(在内存中)存储(在内存中)同一图像的两个版本(正常和反转)并通过单击按钮来切换它们?