-
c#实现浮雕效果显示图片
使图像产生浮雕的效果,主要通过对图像像素点的像素值分别与相邻像素点的像素值相减后加上128,然后将其作为新的像素点的值。 以浮雕效果显示图像主要通过GetPixel方法获得每一点像素的值,通过SetPixel设置该像素点的像素值。代码如下:privatevoidbutton1_Click(objectsender,EventArgse)
{
//以浮雕效果显示图像
try
{
intHeight=this.pictureBox1.Image.Height;
intWidth=this.pictureBox1.Image.Width;
BitmapnewBitmap=newBitmap(Width,Height);
BitmapoldBitmap=(Bitmap)this.pictureBox1.Image;
Colorpixel1,pixel2;
for(intx=0;x<Width-1;x++)
{
for(inty=0;y<Height-1;y++)
{
intr=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(Exceptionex)
{
MessageBox.Show(ex.Message,"信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}