我正在使用WinForms。我的表格中有一個圖片框。當我在圖片框中打開圖片時,只需點擊一個按鈕即可反轉顏色,但我的代碼非常慢。我該如何提高性能。在C中快速反轉圖像#
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;
}
}
}
@D士丹利感謝您的解釋,並給予一個例子。它像一個魅力。 – taji01
'Get' /'SetPixel'非常慢。谷歌的'LockBits'並使用它 - 你可以得到更快的結果數量級。 –
@LucasTrzesniewski我會研究一下。在這種情況下,我不太熟悉如何使用LockBits。如果你能舉一個例子,我會很感激。 – taji01