程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 超酷的圖像效果 (附demo; C#完成)(4)

超酷的圖像效果 (附demo; C#完成)(4)

編輯:關於C語言

四. 柔化效果

原理: 當前像素點與周圍像素點的顏色差距較大時取其平均值.

效果圖:

代碼實現:

柔化效果
    private void button1_Click(object sender, EventArgs e)
    {
      //以柔化效果顯示圖像
      try
      {
        int Height = this.pictureBox1.Image.Height;
        int Width = this.pictureBox1.Image.Width;
        Bitmap bitmap = new Bitmap(Width, Height);
        Bitmap MyBitmap = (Bitmap)this.pictureBox1.Image;
        Color pixel;
        //高斯模板
        int[] Gauss ={ 1, 2, 1, 2, 4, 2, 1, 2, 1 };
        for (int x = 1; x < Width - 1; x++)
          for (int y = 1; y < Height - 1; y++)
          {
            int r = 0, g = 0, b = 0;
            int Index = 0;
            for (int col = -1; col <= 1; col++)
              for (int row = -1; row <= 1; row++)
              {
                pixel = MyBitmap.GetPixel(x + row, y + col);
                r += pixel.R * Gauss[Index];
                g += pixel.G * Gauss[Index];
                b += pixel.B * Gauss[Index];
                Index++;
              }
            r /= 16;
            g /= 16;
            b /= 16;
            //處理顏色值溢出
            r = r > 255 ? 255 : r;
            r = r < 0 ? 0 : r;
            g = g > 255 ? 255 : g;
            g = g < 0 ? 0 : g;
            b = b > 255 ? 255 : b;
            b = b < 0 ? 0 : b;
            bitmap.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b));
          }
        this.pictureBox1.Image = bitmap;
      }
      catch (Exception ex)
      {
        MessageBox.Show(ex.Message, "信息提示");
      }
    }

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