首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取CImage的子图

获取CImage的子图
EN

Stack Overflow用户
提问于 2010-11-14 06:07:59
回答 2查看 774关注 0票数 1

我最近开始学习如何在Visual Studio中使用MFC。我的程序使用了许多小的32x32像素的图像,为了方便起见,它们被放在一个大的.png中。我已经知道如何将大图像加载到CImage中并在CClientDC上显示它,但我找不到任何可以帮助我将图像拆分成较小的32x32图像的方法。

或者,我可以使用DevIL获取大图像的像素数据,但我找不到任何可以从像素数据构造CImage的东西。

因为我几天前才开始学习MFC,所以我对API不是很了解,我可能遗漏了一些明显的东西。有谁能给我指个方向吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-14 06:40:52

您需要使用CImage::Draw()重载来指定源矩形。这样您就可以从原始图像中剪裁要绘制的图像。有两个候选者,例如Draw(HDC hDestDC,const RECT& rectDest,const RECT& rectSrc)。另一个是此doc page上列出的第一个。

票数 2
EN

Stack Overflow用户

发布于 2010-11-14 06:20:07

通常,如果您只是在GUI中使用多图标图像,则不希望创建小图像。

当你绘制图标时,将它的偏移量和大小传递给bitblt函数,而不是整个图像的尺寸。

如果您确实希望在位图中存储子图像,请为目标位图创建一个内存DC并绘制到该DC中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4174986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档