Win32の8bppビットマップにアンチアライアステキストを描くことは可能ですか?

StackOverflow https://stackoverflow.com/questions/3198449

質問

8bppビットマップをCDCに選択し、:: textout()を使用してテキストを描画しました。フォントの品質はantialiased_qualityですが、テキストはモノクロで届きます。灰色のピクセルとジャグエッジはありません。

8bppビットマップは、すでにアンチアライアスされたテキストが描かれている24bppビットマップから抽出され、そのテキストは問題ありません。 (両方のテキストタイプは同じビットマップにあります。)

もちろん、24bppで描画して変換することもできますが、これはより複雑で遅いです。 (後のテキストは変更され、何度も繰り返されます。)アンチアライアスされたテキストを直接8bppビットマップにすることは可能ですか?ありがとう!

役に立ちましたか?

解決

いいえ、アンチエイリアスは8 bppで動作しません。より高速な更新が必要な場合は、GDI経由ではなくOpenGLのようなもので描画を行うことを検討してください。 OpenGLを使用すると、通常、図面はグラフィックスハードウェアによって完全に行われます。そのため、32-BPPでも、図面は通常、GDIが8 bppを実行するよりも高速になります。

また、いずれにせよ、8または24-bppよりも32 bppの方が良いと思われることも注目に値します。 GDIは(一部の)ハードウェアアクセラレーションを使用できますが、通常は32-BPPで最高です。

他のヒント

いいえ、GDIはパレットのビットマップに対してアンチアライアス出力を行いません。それがまさにグレースケールのビットマップです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top