本来是发到delphi版的,那里现在没人了,发到C#式式
如题
我现在用的是bitmap.GetPixel和bitmap.SetPixel,请问有没有办法用ColorMatrix来做或其他的一些高效的方法?另画透明位图:我现在有2幅图,一副是要显示的图片A,另一副是遮照(mask)B,只有黑白2色,2幅图片大小一样,要实现的方法就是让A只显示B的白色部分的区域,小弟愚钝,现在也是用GetPixel和SetPixel来做的。
请教各位大虾,高效的处理方法,Gdi+里能不能有gid中那样的光栅操作来运算图片阿?

解决方案 »

  1.   

    delphi里也可以用C#?Gdi+肯定兼容GDIps:http://www.cnblogs.com/cheatlove/articles/437867.html
      

  2.   

    呵呵,还是delphi版高手多阿,解决了
      

  3.   

    //初始化色彩变换矩阵
    float[][] tem=
    {
    new float[]{0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
    new float[]{0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
    new float[]{0.0f, 0.0f, 0.0f, 0.0f, 0.0f},
    new float[]{0.0f, 0.0f, 0.0f, 1.0f, 0.0f},
    new float[]{0.0f, 0.0f, 0.0f, 0.0f, 1.0f}
    };

    ColorMatrix colorMatrix=new ColorMatrix(tem);
    ImageAttributes imageAtt=new ImageAttributes(); //从0到1进行修改色彩变换矩阵主对角线上的数值
    //使三种基准色的饱和度渐增
    for(float i=0.0f;i<=1.0f;i+=0.02f)
    {
    colorMatrix.Matrix00=i;
    colorMatrix.Matrix11=i;
    colorMatrix.Matrix22=i;
    colorMatrix.Matrix33=i;
    //设置色彩校正矩阵
    imageAtt.SetColorMatrix(colorMatrix,
    ColorMatrixFlag.Default,ColorAdjustType.Bitmap);
    //绘制图片
    g.DrawImage(
    bitmap, new Rectangle(0, 0, iWidth, iHeight), 
    0,0,        
    iWidth,iHeight,
    GraphicsUnit.Pixel, 
    imageAtt);
    }
      

  4.   

    最近C#区也来了位delphi的高手(伴水)...等他来了,估计就能帮你搞定了..