MFC图标加载问题

一、网上下载的ico图标制作MFC可使用的ico图标

1、从easyicon网上下载的图标.ico是RGBA格式的,直接在MFC中加载会报错。

RGBA是代表Red(红色Green(绿色Blue(蓝色)和Alpha的色彩空间。虽然它有的时候被描述为一个颜色空间,但是它其实仅仅是RGB模型的附加了额外的信息。采用的颜色是RGB,可以属于任何一种RGB颜色空间,但是Catmull和Smith在1971至1972年间提出了这个不可或缺的alpha数值,使得alpha渲染和alpha合成变得可能。提出者以alpha来命名是源于经典的线性插值方程αA + (1-α)B所用的就是这个希腊字母

alpha通道一般用作不透明度参数。如果一个像素的alpha通道数值为0%,那它就是完全透明的(也就是看不见的),而数值为100%则意味着一个完全不透明的像素(传统的数字图像)。在0%和100%之间的值则使得像素可以透过背景显示出来,就像透过玻璃(半透明性),这种效果是简单的二元透明性(透明或不透明)做不到的。它使数码合成变得容易。alpha通道值可以用百分比、整数或者像RGB参数那样用0到1的实数表示。

2、使用Axialis IconWorkshop软件,将RGBA转换为RGB格式的.ico图标

2.1 文件--》打开--》ooopic_1571037568.ico

2.2 可以看到ooopic_1571037568.ico是RGB/A格式的图像

2.3 在下方的图标上,右键--》由此图像而来的新Windows图标--》选择中间的32X32-256的这一个图标

2.4 点击确定按钮后,会生成图像所示的大小为32X32,灰度等级为256的图标

2.5 文件--》另存为一个自定义的.ico图标即可

3、此时点击这个图标,虽然仍然显示为32位深,但是已经可以在MFC中直接添加了。

 

 

二、用PNG格式图像制作ico图标:

一共三步走,打开,转windows图标,另存。上图直观

三、一定要注意MFC显示的时候,图标外边也会出现一圈黑圈等问题(CimageList.create()方法使用不当!)

CImageList就是一个容器,用来存储图片资源,方便这些资源被CListBox,CComboBox,CComboBoxEx,CTabCtrl以及CTreeCtrl,CListCtrl等使用。

     要使用CImgeList首先要使用它的create函数:

     一般用的比较多的是这一个函数,当然,它还有很多重载,自己可以去翻阅msdn.

      BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow );

      cx与cy表示图标的大小,nFlags确定建立图像列表的类型,可以是以下值的组合: ILC_COLOR、ILC_COLOR4、ILC_COLOR8、ILC_COLOR16、ILC_COLOR24、ILC_COLOR32、 ILC_COLORDDB和ILC_MASK;

      用的较多的是ILC_COLOR32表示颜色数目,自然越多越好。

      ILC_MASK也很常用,如果不设置这个值,那个图标透明的地方会被黑色填充

     

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值