出處:http://wenku.baidu.com/view/ff8ca107e87101f69e3195cc.html
原理: 對圖像像素點的像素值分別與相鄰像素點的像素值相減後加上128,
然後將其作為新的像素點的值.
private void button1_Click(object sender, EventArgs e)
{
//以浮雕效果顯示圖像
try {
int Height = this.pictureBox1.Image.Height;
int Width = this.pictureBox1.Image.Width;
Bitmap newBitmap = new Bitmap(Width, Height);
Bitmap oldBitmap = (Bitmap)this.pictureBox1.Image;
Color pixel1, pixel2;
for (int x = 0; x < Width
- 1; x++)
{
for (int y = 0; y < Height - 1; y++)
{
int r = 0, g = 0, b = 0;
pixel1 = oldBitmap.GetPixel(x, y);
pixel2 = oldBitmap.GetPixel(x + 1, y + 1);
r = Math.Abs(pixel1.R - pixel2.R + 128);
g = Math.Abs(pixel1.G - pixel2.G + 128);
b = Math.Abs(pixel1.B - pixel2.B + 128);
if (r > 255) r =
255;
if (r < 0) r = 0;
if (g > 255) g =
255;
if (g < 0) g = 0;
if (b > 255) b =
255; if (b < 0)
b = 0;
newBitmap.SetPixel(x, y, Color.FromArgb(r, g, b));
}
} this.picResult.Image =
newBitmap;
}
catch (Exception ex) {
MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }
}
}
}
留言