2011-01-13 6 views
3

私は人々がそうではないと言っていると聞いています。delphi TBitmapはアルファチャンネルをサポートしていますか

しかし、私はその後、私は、ビットマップにアンチエイリアス処理されたテキストを描き、それをファイルに保存されたTBitmapのを作成し、

For I := 1 to bmp.Width do 
    For J := 0 to bmp.Height do 
    bmp.canvas.Pixels[I,J]:= $00000000; 

によって領域全体をクリア。これをgimpで開くと、透過情報が表示されます。

誰にもこれに関する決定的な回答がありますか、それがうまくいく場合、どのように動作するかについての詳細情報はありますか?私は最後のバイトで遊んでみましたが、gimpで開くと期待した結果が得られません。

+0

を設定する必要があります。 ScanLineを使用して調べてみてください - 1ピクセルあたりのバイト数を知るにはピクセルフォーマットを知っておく必要がありますが、簡単なpf32bit(4バイト)を使用している場合はhttp://www.efg2.com/Lab/ImageProcessing/Scanlineを参照してください。 .htm –

答えて

17

それはありませんが、あなたはピクセル[] `非常に遅くなることができます`使用

bmp.PixelFormat := pf32bit; 
+0

+1 Great :)これはどのVCLバージョンでサポートされていますか? – Wolf

+0

私は100%確信していませんが、これはすでにD7にあったと思います。おそらく早い。 –

+0

私が知ったように、 'pf32bit'はすでにD4で定義されています:) – Wolf

3

Delphi TBitmapは、Windows BITMAPオブジェクトのラッパーです。だから、アルファチャンネルをサポートしていますが、明らかにPixelFormatプロパティを適切に設定する必要があります。

関連する問題