如题
会的大神告诉下,简单点说,网上看了很多,太乱了
比如我有个Bitmap图片如何进行混色  或者如何将它变暗都可以。
谢谢了 本人新手,见笑

解决方案 »

  1.   

    参考 msdn 
    http://msdn.microsoft.com/en-us/library/system.drawing.imaging.colormatrix.aspx需要有一些线性代数基础知识,矩阵乘法等
      

  2.   

    楼主你参考下,不考虑性能的函数,最普通的实现
    //Alpha混合public void AlphaBlend(Bitmap source, byte alpha, Color backColor)
    {
      for (int x = 0; x < source.Width; x++)
      {
         for (int y = 0; y < source.Height; y++)
         {
            Color sc = source.GetPixel(x, y);
            byte R = (byte)(sc.R * alpha / 255 + backColor.R * (255 - alpha) / 255);
            byte G = (byte)(sc.G * alpha / 255 + backColor.G * (255 - alpha) / 255);
            byte B = (byte)(sc.B * alpha / 255 + backColor.B * (255 - alpha) / 255);
            byte A = (byte)(sc.A * alpha / 255 + backColor.A * (255 - alpha) / 255);
            bit.SetPixel(x, y, Color.FromArgb(A, R, G, B));
          }
       }
    }
      

  3.   


    public void AlphaBlend(Bitmap source, byte alpha, Color backColor);
    参数信息:
    source:   源图像
    alpha:    alpha值
    backColor:背景色
      

  4.   

    bit.SetPixel(x, y, Color.FromArgb(A, R, G, B));
    ==>>
    source.SetPixel(x, y, Color.FromArgb(A, R, G, B));