原理: 对图像像素点的像素值分别与相邻像素点的像素值相减后加上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 .pictureBox1.Image = newBitmap;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, " 信息提示 " , MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
浮雕效果
最新推荐文章于 2022-10-26 11:39:45 发布