【发布时间】:2014-05-29 07:45:55
【问题描述】:
Gdiplus::Bitmap::Lock/UnlockBits 是否总是复制数据?或者有没有可以将相关页面映射到我的进程的地址空间,给我一个零拷贝直接访问的情况?
如果是,对参数的已知限制是什么(例如特定格式,可能仅在请求整个图像时,等等...)?
如果不是,那为什么不呢?该界面看起来旨在尽可能提供直接访问。是微软的懒惰,还是有一些技术障碍?
【问题讨论】:
-
LockBits 的抽象级别非常非常高。需要完成多少工作完全取决于图像编解码器、您要求的像素格式、图像是从流还是文件加载以及您的程序之前是否访问过像素数据。 “懒惰”当然是一种低效率的思考方式。
-
@Hans:所以你的评论暗示它总是复制?我只对使用 (width, height, format) 构造函数 btw 创建的位图感兴趣。