2

我正在使用 gdi c++,如果我绘制 7000*5000 等大图像,StretchDIBits 函数有时会失败。它什么也没画。GetLastError() 表示没有足够的系统资源。任何人都可以解释为什么 StretchDIBits 需要资源,即使 DC 准备成功。

4

1 回答 1

1

可能是 StretchDIBits 将源图像扩展为与目标位图相同尺寸的临时位图,然后将临时位图复制到目标中作为最后一步。因此,即使您有足够的内存在 StretchDIBits 调用之前创建目标位图 (140 MB),您的系统也没有额外的 140 MB 分配给临时位图。

于 2009-09-18T01:28:29.163 回答