StretchDIBits 失败,有时什么也画不出来,

发布于 2024-08-05 13:00:26 字数 145 浏览 3 评论 0原文

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

I am using gdi c++,
StretchDIBits function sometimes failed if I draw large Images such as 7000*5000.
It draw nothing. GetLastError() says no enough system resource.
Can anyone explain why StretchDIBits need resource even The DC is prepared successfully.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

帅冕 2024-08-12 13:00:26

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

It may be that StretchDIBits expands the source image into a temporary bitmap of the same dimensions as the destination bitmap, and then copies the temporary into the destination as the final step. So even if you have enough memory to create the destination bitmap (140 MB) before the StretchDIBits call, your system doesn't have the additional 140 MB to allocate to the temporary bitmap.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文