TABitmap の解説

TOP

関数一覧

procedure LoadFromFile(const FileName:String);override;
ビットマップ画像を呼び出します
procedure Assign(Source:TPersistent);override;
TBitmap/TABitmapの画像データをそのままコピーしてきます。
procedure SetSize(W,H:Integer);
サイズを変更します。(変更すると画像はクリアされます)

procedure PutRGB(x,y:Integer;r,g,b:Byte);
指定位置にr,g,bのドットを出力します。
procedure PutColor(x,y:Integer;col:TColor);
指定位置にColorのドットを出力します。
procedure GetRGB(x,y:Integer;var r,g,b:Byte);
指定位置のピクセルからr,g,bを取り出します。
procedure GetColor(x,y:Integer;var col:TColor);
指定位置のピクセルからColorを取り出します。
procedure FillBMP(r,g,b:byte);
全部指定色にフィルする。

・通常アルファブレンディング
procedure ColorAlpha(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:WORD);
procedure ColorAlphaMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:WORD);
procedure ColorAlphaMMX64(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:WORD);
合成出力先BMPに半透明値でアルファブレンディングを行います。
ColorAlphaMMX64は、幅が偶数の場合、一度に2ピクセルずつ処理します。若干高速化されます。
偶数ではないときは自動でColorAlphaMMXを呼び出します。

・透過色転送
procedure ColorKey(x,y,w,h,ax,ay:Integer;BMP:TBitmap;Col:TColor);
合成出力先BMPに透過色Colで透過合成を行います。
procedure ColorKeyAlpha(x,y,w,h,ax,ay:Integer;BMP:TBitmap;Col:TColor;iA:BYTE);
procedure ColorKeyAlphaMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap;Col:TColor;iA:BYTE);
合成出力先BMPに透過色Colで半透明付き透過合成を行います。
ColorKey関数はMMX化の必要性が無いので行っていません。

・加算転送(色を足す合成方法。炎や爆破などに有効)
procedure ColorAdd(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:Word);
procedure ColorAddMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:WORD);
画像を加算して合成します。
炎などの効果に有効です。

・減算転送(色を減らす合成方法。影等に使う)
procedure ColorSub(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:Word);
procedure ColorSubMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:WORD);
画像を減算して合成します。
影などに有効です。



・半透明長方形処理
procedure RectAngleAlpha(x,y,w,h:Integer;Col:TColor;iA:BYTE);
procedure RectAngleAlphaMMX(x,y,w,h:Integer;Col:TColor;iA:BYTE);
指定色Colで範囲を半透明値で長方形に塗りつぶします。

・アルファチャンネル処理
procedure ColorAlphaPic(x,y,w,h,ax,ay:Integer;BMP:TBitmap);
procedure ColorAlphaPicMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap);
procedure ColorAlphaPicCh(x,y,w,h,ax,ay:Integer;BMP:TBitmap);
procedure ColorAlphaPicChMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap);
アルファチャンネルを適用して合成出力先BMPに出力します。
Chは、透過、不透過が多い画像に最適化されています。ゲームのキャラクタ画像に使うと良いです。

・アルファチャンネル・アルファブレンディング処理
procedure ColorAlphaPicAlpha(x,y,w,h,ax,ay,ax,ay:Integer;BMP:TBitmap;iA:Word);
procedure ColorAlphaPicAlphaMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:Word);
procedure ColorAlphaPicAlphaCh(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:Word);
procedure ColorAlphaPicAlphaChMMX(x,y,w,h,ax,ay:Integer;BMP:TBitmap;iA:Word);
アルファチャンネルを適用して合成出力先BMPに半透明出力します。
Chは、透過、不透過が多い画像に最適化されています。ゲームのキャラクタ画像に使うと良いです。




TOP