当前位置: 代码迷 >> VC >> 灰度图求算法,该怎么处理
  详细解决方案

灰度图求算法,该怎么处理

热度:274   发布时间:2016-05-05 00:09:59.0
灰度图求算法


求enable=false时候灰度算法,这个图就是参考图,要效果与这个相同,或者非常相近的算法.

------解决方案--------------------
/// <summary>
         /// 灰度处理。(对于菜单项图标,透明度还要加倍。)
        /// </summary>
         /// <param name="bmp">原始图像。</param>
         /// <returns>灰度和透明度加倍的图像。</returns>
         public static Bitmap ToGray(Bitmap bmp)
         {
             for (int i = 0; i < bmp.Width; i++)
             {
                 for (int j = 0; j < bmp.Height; j++)
                 {
                     //获取该点的像素的RGB的颜色。
                    Color color = bmp.GetPixel(i, j);
                     //利用公式计算灰度值。
                    int gray = (int)(color.R * 0.3 + color.G * 0.59 + color.B * 0.11);
                     //菜单不可用时,还要将图片的透明度加倍。
                     Color newColor = Color.FromArgb((int)(color.A * .5), gray, gray, gray);
                     //Color newColor = Color.FromArgb(color.A,gray, gray, gray);
                     bmp.SetPixel(i, j, newColor);
                 }
             }
             return bmp;
         } 
  相关解决方案