[C#] 濾鏡筆記 - 負片效果(Invert)

2012-12-13

Invert 英文叫做顛倒.. 原理很簡單也就是 將 255- 原本的值..

這樣 0(黑) 就會變成  255(白) 反之 255(白) 就會變成 0(黑)

所以公式就是將R、G、B 都用 255 去減..

就可以拿到反轉值,之所以會有這種效果需求跟以前底片有分正片根負片有關

大部分大家都是用負片的底片,洗出來時候剛好反過來的顏色變成你看到的相片..

C# Code:

public System.Drawing.Bitmap ConvertToInvert(System.Drawing.Image img) {
// 讀入欲轉換的圖片並轉成為 Bitmap
System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(img);
for (int y = 0; y < bitmap.Height; y++)
{
for (int x = 0; x < bitmap.Width; x++)
{
// 取得每一個 pixel
var pixel = bitmap.GetPixel(x, y);

// 負片效果 將其反轉
System.Drawing.Color newColor = System.Drawing.Color.FromArgb(pixel.A, 255 - pixel.R, 255 - pixel.G, 255 - pixel.B);

bitmap.SetPixel(x, y, newColor);

}
}
// 結果
return bitmap;
}


結果:



2012-10-04_132719


當麻許的超技八 2014 | Donma Hsu Design.