由彩色到黑白

                         mythma
彩色图转换为灰度图公式很简单:
Y=0.3RED+0.59GREEN+0.11 Blue

用GDI+实现的方式由两种:
1. 直接用上述公式修改象素点
2. 用ColorMatrix。

下面是用ColorMatrix实现示例:

using namespace Gdiplus;
    Image img(wszFileName);
    Graphics graphics(GetDC()
->GetSafeHdc());
    ColorMatrix cm
= {0.3f0.3f0.3f00,
        
0.59f,0.59f,0.59f,00,
        
0.11f,0.11f,0.11f,00,
        
0,    0,    0,    10,
        
0,    0,    0,    01}
;
    ImageAttributes ia;
    ia.SetColorMatrix(
&cm);

    
float x = (float)img.GetWidth();
    
float y = (float)img.GetHeight();
    graphics.DrawImage(
&img, 
        RectF(
0.0f,0.0f,x,y,
        
0.0f,0.0f,x,y, 
        UnitPixel,
        
&ia);
阅读更多
文章标签: float gdi+
个人分类:
上一篇用std::find查找文件流中的内容
下一篇如何修改Pop-menu(右键弹出的菜单)的内容(Caption)
想对作者说点什么? 我来说一句

JavaScript 黑白反转彩色图像

2009年05月18日 285KB 下载

bmp图片黑白转换

2013年11月20日 2KB 下载

PDF 彩色黑白插键

2012年06月07日 1.1MB 下载

没有更多推荐了,返回首页

关闭
关闭