我最近开始学习如何在 Visual Studio 中使用 MFC。我的程序使用了许多 32x32 像素的小图像,为方便起见,这些图像被放在一个大的 .png 中。我已经想出如何将大图像加载到 CImage 中并将其显示在 CClientDC 上,但我找不到任何可以帮助我将图像拆分为较小的 32x32 图像的方法。
或者,我可以使用 DevIL 获取大图像的像素数据,但我找不到任何可以从像素数据构造 CImage 的东西。
因为我几天前才开始学习 MFC,所以我对 API 不是很了解,而且我可能遗漏了一些明显的东西。谁能指出我正确的方向?
最佳答案
您需要使用 CImage::Draw() 重载来指定源矩形。这样您就可以从原始图像中剪下要绘制的图像。有两个候选,例如 Draw(HDC hDestDC, const RECT& rectDest, const RECT& rectSrc)。另一个是这个doc page上列出的第一个.
关于c++ - 获取 CImage 的子图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4174986/