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