(C ++)处理StretchBlt()和AlphaBlend()的图像大小限制(32768)?

时间:2017-09-11 16:11:02

标签: c++ winapi bitmap stretch cdc

我从痛苦的经历中了解到,这两个MSDN函数将拒绝显示宽度超过32 767逻辑单位的图像。

我的目标是创建一个非常大的图像的可缩放图像显示(宽达262,144像素,但只有几百个)。

BOOL AlphaBlend(
   int xDest,
   int yDest,
   int nDestWidth,
   int nDestHeight,
   CDC* pSrcDC,
   int xSrc,
   int ySrc,
   int nSrcWidth,
   int nSrcHeight,
   BLENDFUNCTION blend 
);

我对上述参数有两类问题:

1)nSrcWidth太大,图像无法显示。将图像切成部分是行不通的,因为xDest太大了。

2)缩放时,我放大图像,nDestWidth变得太大;因此,缩放超过给定的比例会使图像消失。

我是否可以使用某些功能/类/方法来避免这些限制,或者我是否被迫解决这些问题?

提前感谢您的帮助。

0 个答案:

没有答案