【问题标题】:Is it possible to draw antialiased text on an 8bpp bitmap in Win32?是否可以在 Win32 中的 8bpp 位图上绘制抗锯齿文本?
【发布时间】:2010-07-07 20:15:51
【问题描述】:
我在 CDC 中选择了一个 8bpp 位图,并使用 ::TextOut () 来绘制文本。字体质量为 ANTIALIASED_QUALITY,但文本以单色显示;没有灰色像素和锯齿状边缘。
8bpp 位图是从 24bpp 位图中提取的,该位图上已经绘制了抗锯齿文本,并且该文本是可以的。 (两种文本类型在同一个位图中。)
当然,我可以使用 24bpp 并转换,但这更加复杂和缓慢。 (后面的文本会发生变化,并重复多次。)是否可以将抗锯齿文本直接放入 8bpp 位图中?谢谢!
【问题讨论】:
标签:
text
bitmap
antialiasing
grayscale
textout
【解决方案1】:
不,GDI 不会对调色位图进行抗锯齿输出,而这正是灰度位图。
【解决方案2】:
不,抗锯齿不适用于 8-bpp。如果您需要更快的更新,请考虑使用 OpenGL 而不是通过 GDI 进行绘图。使用 OpenGL,绘图通常完全由图形硬件完成,因此即使在 32-bpp 下,绘图通常也会比 GDI 进行 8-bpp 的速度更快。
同样值得注意的是,在任何情况下,使用 32-bpp 可能比使用 8-或 24-bpp 更好。 GDI 可以使用(某些)硬件加速,但通常使用 32-bpp 时效果最佳。