2017-10-22 17 views
1

でビットマップを描画します。 GetDIBitsSetDIBitsで試してみましたが、何も描画できませんでした。私はpngを使うことができますし、ピクセル単位でビットマップのピクセルを変更することもできます。これは、DLLや制限付きライセンスでライブラリを使用しないようにしたいだけです。私は、ユーザーインターフェイスを作成し、actualyこのようビットマップを描画しています透明

+1

OpenGLを使用すると、ライセンスまたは実ライブラリがありません。 – Mikhail

+0

バックグラウンドなしでPNGファイルを使用します。 Photoshopで作成する – sam

+1

@Mikhail:OpenGLレンダリングコンテキストをネイティブウィンドウにアルファブレンドすることはできません。たとえOpenGLが非常に複雑で、アルファ透明度を持つ画像をレンダリングするのと同じくらいシンプルなものに使うのは高価です。 – IInspectable

答えて

1

半透明のビットマットを描画するには、GdiAlphaBlend functionを利用できます。このAPIを使用して描画するアルファチャンネルのビットマップには、事前にアルファ化されたアルファベットが必要です。

+1

事前に乗算されたアルファを使用する理由については、「アルファブレンド:前もってまたは前にする」を参照してください(https://developer.nvidia.com/content/alpha-blending-pre-or-not-pre) 、[Premultiplied alpha](https://blogs.msdn.microsoft.com/shawnhar/2009/11/06/premultiplied-alpha/)を参照してください。 – IInspectable

関連する問題