Mfc 使用CImageList绘制缩放图像

Mfc 使用CImageList绘制缩放图像,mfc,Mfc,如果图像存储在CImageList中,是否有一种简单的方法可以通过适当的透明度缩放以适合给定的目标矩形来渲染它们?CImageList::Dropex获取大小信息,但我认为它不会缩放,只会剪切?我想您可以将它们渲染到屏幕外位图,然后将它们拉伸到您的设备或其他屏幕外位图,让StretchBlt进行缩放。。。但是,要正确地保持透明度,需要进行一些修改,根据您的情况,您可能需要使用AlphaBlend 我的观点是,大多数Win32图像处理代码,因此通过扩展它们的MFC等价物,如CImageList、C

如果图像存储在CImageList中,是否有一种简单的方法可以通过适当的透明度缩放以适合给定的目标矩形来渲染它们?CImageList::Dropex获取大小信息,但我认为它不会缩放,只会剪切?

我想您可以将它们渲染到屏幕外位图,然后将它们拉伸到您的设备或其他屏幕外位图,让StretchBlt进行缩放。。。但是,要正确地保持透明度,需要进行一些修改,根据您的情况,您可能需要使用AlphaBlend


我的观点是,大多数Win32图像处理代码,因此通过扩展它们的MFC等价物,如CImageList、CIcon、CImage、CBitmap。。。不足以满足当今的图形需求。特别是处理每像素的透明度几乎从来没有工作一致。我通常将图像存储在CImage中,并在任何地方使用::AlphaBlend将其发送到DC,或者我使用GetDIBits/SetDIBits直接操作RGBA条目,我承认,这对于进行缩放和类似操作都不太实际。另一方面,我理解必须维护已经使用这些东西的代码,并希望更新它们以给它们一点现代感…我想你可以将它们渲染到屏幕外位图,然后将它们拉伸到你的设备或其他屏幕外位图,让StretchBlt进行缩放。。。但是,要正确地保持透明度,需要进行一些修改,根据您的情况,您可能需要使用AlphaBlend

我的观点是,大多数Win32图像处理代码,因此通过扩展它们的MFC等价物,如CImageList、CIcon、CImage、CBitmap。。。不足以满足当今的图形需求。特别是处理每像素的透明度几乎从来没有工作一致。我通常将图像存储在CImage中,并在任何地方使用::AlphaBlend将其发送到DC,或者我使用GetDIBits/SetDIBits直接操作RGBA条目,我承认,这对于进行缩放和类似操作都不太实际。另一方面,我理解维护已经使用了这些东西的代码,并希望更新它们以给它们一点现代感的感觉