★搜Asp.net★(www.soAsp.net),为专业技术文档网站。
包括Asp.net开发技术文档·C#开发技术文档·Access/SQL Server数据库开发技术文档·VB.NET开发技术文档。
还包括·项目实战经验总结·开发经验技巧总结·项目开发心得。


  
C#实现浮雕效果显示图片

   使图像产生浮雕的效果,主要通过对图像像素点的像素值分别与相邻像素点的像素值相减后加上128,然后将其作为新的像素点的值。

以浮雕效果显示图像主要通过GetPixel方法获得每一点像素的值,通过SetPixel设置该像素点的像素值。代码如下:

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);
    }
}