关闭

由彩色到黑白

799人阅读 评论(0) 收藏 举报
                         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);
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:536957次
    • 积分:2017
    • 等级:
    • 排名:第19081名
    • 原创:88篇
    • 转载:22篇
    • 译文:4篇
    • 评论:8条
    文章分类
    最新评论