a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

C#灰度化圖像的實例代碼

2020-01-24 03:08:19
字體:
來源:轉載
供稿:網友

用偽語句可以表示如下

public bitmap GrayScal(bitmap orgbmp)
{
    建立一個與原圖片等大的8位的圖片
    取出原圖像中的每一個點
    新圖像的點=原圖像點的紅色量*系數1+綠色量*系數2+黃色量*系統3
    返回新圖像
}

復制代碼 代碼如下:

/// <summary>
    /// 對圖像進行點運算,
    /// </summary>
    public class PointTrans
    {
        private readonly double cb;
        private readonly double cg;
        private readonly double cr;

        /// <summary>
        /// 做點運算,要給每一個偏量,做一下設置,比如做圖像的灰度圖就需要現設置
        /// </summary>
        /// <param name="cr"></param>
        /// <param name="cg"></param>
        /// <param name="cb"></param>
        public PointTrans(double cr, double cg, double cb)
        {
            this.cr = cr;
            this.cg = cg;
            this.cb = cb;
        }

        public  Bitmap GrayScaleBmp(Bitmap orgData)
        {
            int bmpWidth = orgData.Width, bmpHeight = orgData.Height;
            Bitmap destData = ImageTools.CreateGrayscaleImage(bmpWidth, bmpHeight);
            Rectangle bmpRect=new Rectangle(0,0,bmpWidth,bmpHeight);

            BitmapData orgBmpData = orgData.LockBits(bmpRect, ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);

            BitmapData destBmpData = destData.LockBits(bmpRect, ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);
            ProcessFilter(orgBmpData,destBmpData);

            orgData.UnlockBits(orgBmpData);
            destData.UnlockBits(destBmpData);
            return destData;

        }


        protected unsafe void ProcessFilter(BitmapData sourceData, BitmapData destinationData)
        {
            // get width and height
            int width = sourceData.Width;
            int height = sourceData.Height;

            int srcOffset = sourceData.Stride - width*3;
            int dstOffset = destinationData.Stride - width;

            // do the job
            byte* src = (byte*) sourceData.Scan0.ToPointer();
            byte* dst = (byte*) destinationData.Scan0.ToPointer();

            // for each line
            for (int y = 0; y < height; y++)
            {
                // for each pixel
                for (int x = 0; x < width; x++, src += 3, dst++)
                {
                    *dst = (byte) (cr*src[RGB.R] + cg*src[RGB.G] + cb*src[RGB.B]);
                }
                src += srcOffset;
                dst += dstOffset;
            }
        }


    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 手机看片169 | 久久99久久久久 | 亚洲片在线观看 | 欧美一区二区在线观看 | 国产精品成人一区二区三区夜夜夜 | 国产在线一区二区三区 | 亚洲成人久久久 | 在线国产区 | 91视频免费观看 | 国产欧美精品一区二区三区 | 久久亚洲一区 | 8×8x拔擦拔擦在线视频网站 | 国产精品久久久久久久久免费 | 一级黄视频 | 午夜日韩在线观看 | 操久久 | 中文字幕日韩一区二区 | 伊人网站 | 综合色久 | 羞羞视频在线观免费观看 | 天堂一区二区三区 | 特级毛片在线大全免费播放 | 97国产精品视频人人做人人爱 | 国产二区视频 | 国产一区| 成年人网站免费在线观看 | 国产高清一级毛片在线不卡 | 91亚洲狠狠婷婷综合久久久 | а天堂中文最新一区二区三区 | 久久91久久久久麻豆精品 | 精品亚洲成a人在线观看 | 超碰成人免费 | 91精品一区二区三区久久久久久 | 国产不卡一 | 国产精品亚洲视频 | 99热在线免费观看 | 中文字幕在线观看av | 色呦呦在线视频 | 美女黄网站视频免费 | a在线观看| 欧美日韩一区二区中文字幕 |