コンポーネント - BGRABitmap
透明度(アルファチャネル)を使用して画像を変更および作成するために設計されたコンポーネントです。
ライセンス
Modified LGPLBGRABitmapの準備
インストールの前に
Linuxの場合、OpenGLがインストールされていなければ、インストールします
$ sudo apt-get install libglu1-mesa-dev
参考: https://wiki.lazarus.freepascal.org/BGRA_Installation_on_Linux
インストール
オンラインパッケージマネージャーを用いてインストールします
使い方
- ファイルのソースコードで、BGRABitmapユニットをuses節に追加します
uses Classes, SysUtils, BGRABitmap, BGRABitmapTypes;
- プロジェクトインスペクタの[要求されたパッケージ]にBGRABitmapPackを追加します
- 使い終わったら、必ず変数を開放します
var BGRABmp: TBGRABitmap; begin BGRABmp.Create; ... BGRABmp.Free; end;
- 使い方は、TBitmapと似ています。詳しくは以下のホームページを参照してください https://wiki.freepascal.org/BGRABitmap(英語表記)
その他
サイズの変更
TBitmapではWidth、及びHeightプロパティを使用しますが、TBGRABitmapのWidth、及びHeightプロパティは読み込み専用なので、直に変更できません。 TBGRABitmapでは、以下のようにBGRAReplaceを用います。
var BGRABmp: TBGRABitmap; begin ... BGRAReplace(BGRABmp, BGRABmp.Resample(Width, Height, rmSimpleStretch));
StretchDrawの代わり
TBGRABitmapにはStretchDraw関数がありません。代わりにBGRAReplaceを用います。
- TBitmapの場合
var bbmp: TBitmap; rc: TRect; begin bmp.LoadFromFile('sample.bmp'); rc := Rect(0, 0, Image1.Width, Image1.Height); Image1.Canvas.StretchDraw(rc, bbmp); end;
- TBGRABitmapの場合
var BGRABmp, bbmp: TBGRABitmap; begin BGRABmp.Create(0, 0, 'sample.bmp'); bbmp := TBGRABitmap.Create; BGRAReplace(bbmp, BGRABmp.Resample(Image1.Width, Image1.Height, rmSimpleStretch)); bbmp.Draw(Image1.Canvas, 0, 0, True); bbmp.Free; BGRABmp.Free; end;