程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#實現浮雕效果顯示圖片

C#實現浮雕效果顯示圖片

編輯: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);
    }
}

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved