VC 如何读取 ico 图标中的 png 压缩格式?

DavidHsing 2012-03-28 04:14:50
RT,本身的 API ::LoadImage 函数,对于 256x256 的 png 压缩格式图标不支持,载入失败。
各位有什么好的办法可以读取吗?
别告诉我用 CxImage freeImage 之类,就想知道用 VC 自己写代码咋实现?
有满意答复再加分。
有了解的吗?
...全文
166 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
looklzg1108 2012-08-01
  • 打赏
  • 举报
回复
CImage image;
image.Load(_T(".\\res\\tab_select.png"));
image.Save(_T(".\\res\\tab_select.bmp"));

//CBitmap* pBitmap = new CBitmap();

CBitmap bmp;
HBITMAP hBmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
_T(".\\res\\tab_select.bmp"),
IMAGE_BITMAP,
0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
if(!bmp.Attach(hBmp))
{
AfxMessageBox(_T("LoadBitmap Faild"));
}
looklzg1108 2012-08-01
  • 打赏
  • 举报
回复
比较笨的方法

CImage image;
image.Load(_T(".\\res\\tab_select.png"));
image.Save(_T(".\\res\\tab_select.bmp"));

CBitmap bmp;
HBITMAP hBmp = (HBITMAP)LoadImage(AfxGetInstanceHandle(),
_T(".\\res\\tab_select.bmp"),
IMAGE_BITMAP,
0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
bmp.Attach(hBmp)
Kaile 2012-03-29
  • 打赏
  • 举报
回复
一直用08
DavidHsing 2012-03-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
上传一下压缩过的PNG,大家来试下
[/Quote]
用 vs 2010 任意新建一个工程,res 目录下的目标就有
哥们看来你没留心过。谢了!
Kaile 2012-03-28
  • 打赏
  • 举报
回复
上传一下压缩过的PNG,大家来试下
DavidHsing 2012-03-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
微软自带的Gdiplus就支持PNG呀
[/Quote]
谢谢你的答复。不过你理解错了,不是简单的 png 图像,说的是 ico 图标里面的 png 压缩格式。
schlafenhamster 2012-03-28
  • 打赏
  • 举报
回复
解压gzip
zhjianjun 2012-03-28
  • 打赏
  • 举报
回复
微软自带的Gdiplus就支持PNG呀
SuperLy 2012-03-28
  • 打赏
  • 举报
回复
png内部数据是压缩的,不像bmp那么简单,仅仅压缩/解压缩就够你写个千把行代码了...
想自己写代码,freeImage 是开源的,可以看到代码的...

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧