アルファチャンネルをHDCで手伝ってください。私はHDC dc CreateCompatibleDCをスローします。 CreateDIBSectionを呼び出すよりも、メモリ内のイメージのバイトを見つけることができます。このDCにDrawFrameControlを呼び出します。すべての作品ですが、メモリには1ピクセルあたり4バイトがあり、アルファチャンネルは00で塗りつぶします。しかし、私はアルファチャンネルが必要です。 DrawFrameControlに実際のアルファ値を設定させるにはどうしたらいいですか?ありがとうございました。そして、悪い英語のために申し訳ありません:(DeviceContext(HDC)のアルファチャンネル
6
A
答えて
7
GDIは、1ピクセルあたり4バイトのビットマップのアルファ/予約バイトに書き込むことはできません。GDIは実際にアルファを認識しません。 AlphaBlend
などの関数の。しかし、あなたはそれがに書いたピクセルを知って0 にアルファに書き込み、リセットという知識を使用して、手動でその後アルファを修正することができます。
の詳細については、これら三つを読みます記事:
- Transparent Graphics with GDI, Part 1
- Transparent Graphics with GDI, Part 1 1/2
- Transparent Graphics with GDI, Part 2
最初の二つは、おそらくあなたが望むものを達成するために十分な情報を与えます。
これらの記事は、アルファが詰まったピクセルをスキャンして修正する(さらに高度なテクニックを使用して、いくつかのものを重ねて正しいアルファベットで表示する)ことで、GDI関数でアルファを処理する一般的な方法を取ります。 )FrameRect
は、線が1単位の幅が広くて高い矩形を描画します。線を使用して描画するか、メモリ内のピクセルビットマップを直接編集して直線をメモリに描画する方が効率的です。これは、GDI描画ピクセルのビットマップ全体をスキャンする必要がなくなります。結局、1単位幅の矩形であるため、どのピクセルが既に描画されているのかを正確に把握し、自分で編集することができます。
関連する問題
- 1. HDCメモリリーク(HDCのリリース/ hdcの削除)
- 2. Tensorflow DeviceとDeviceContextの比較
- 3. hDCのメモリ管理
- 4. アルファチャンネルの座標
- 5. アルファチャンネルのグラデーションバンディング
- 6. ストレッチブロックとアルファチャンネルのフィルタリング
- 7. QPaintDeviceをHDCハンドルから作成する
- 8. アルファチャンネルのみのGetPixelsとSetPixels
- 9. OpenCV:アルファチャンネルのPNG画像
- 10. 複数のモニタでウィンドウ相対DeviceContextを作成する
- 11. SharpDX/SolidColorBrushのコンストラクタでDeviceContextを使用していますか?
- 12. アルファチャンネル付きWPF 3Dテクスチャ
- 13. Texture2Dを使用した既存のHDCへの描画
- 14. three.js内の一貫性のないアルファチャンネル
- 15. アルファチャンネルのないAndroidビットマップピクセルのバイト配列
- 16. エラーC2360: 'hdc'の初期化は 'case'ラベルでスキップされます
- 17. アルファチャンネルのktxからpngに変換
- 18. アルファチャンネルの子ウィンドウを点滅させる
- 19. Windows/D3Dのアルファチャンネルを検出中
- 20. アルファチャンネルのある画像をアルファチャンネルのない画像に変換できますか?
- 21. AS3ビットマップデータは、3番目のアルファチャンネルに基づいて2つのアルファチャンネルを合成します。
- 22. ImageIOがPNGアルファチャンネルを無視します
- 23. アルファチャンネルを使用したビットマップ描画:
- 24. 画像からアルファチャンネルを削除する
- 25. ビットマップにアルファチャンネルを追加する方法
- 26. JavaFX PixelReaderアルファチャンネルが動作しない
- 27. XNA。テクスチャ2D。 SetData。間違ったアルファチャンネル
- 28. ffmepgでビデオからアルファチャンネルを削除
- 29. GraphiccMagick、アルファチャンネルを削除する方法
- 30. 1つのhRCを複数のhDCに設定できますか?