近期在进行自绘控件的开发时,时常用到灰度图像。譬如真彩色工具条中的Disable状态的图标,譬如真彩菜单Disable状态的图标等。照常来说,可以让控件的使用者去制作相应的图标。然而,为了让控件的使用者在使用控件时尽量简单,一个比较好的办法是在程序中生成Disable状态的图标。本文提供了一个简单的封装类CGrayBitmap,使用它的静态方法DoGray可以根据一个常规图片生成它的灰度图。
原创文章,转帖请注明出处:blog.youkuaiyun.com/sjdev
要对图像进行灰度处理,首先需要获取到图像的数据。GetBitmapBits和GetDIBits都可以得到位图的数据。GetBitmapBits用于获取设备独立位图的数据,GetDIBits用于获取兼容位图的数据。MSDN提示说GetBitmapBits只是为了兼容16位Windows