我对Bitmap类有疑问。如果要在位图上设置很多像素,则可以使用SetPixel
方法,但这非常慢。关于如何使用LockBits
方法来加速它有很多文档,所以我创建了一个方法:SetFastPixel
来加快它的速度。
但是,我对此真的感到困惑:为什么Microsoft不将SetPixel()的实现更改为更快的实现?换句话说,使用SetPixel
代替LockBits
方法是否有优势?
最佳答案
SetFastPixel
可能不起作用的情况:
单色设备(八个像素打包成一个字节)
Planar devices(16色VGA卡的内存布局异常,需要硬件帮助)
索引调色板设备(SetPixel
处理RGB到调色板索引的映射)
打印机(我不知道如何通过LockBits
来工作)
多显示器配置,其中每张卡具有不同的像素格式SetPixel
旨在处理上述所有问题,但速度较慢。如果您愿意牺牲上述几点,或者愿意在应用程序中处理这些问题,则可以通过LockBits
绘制图像。
关于c# - Microsoft为什么不将SetPixel()的实现更改为更快的实现?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4126629/