掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ビットマップ画像をトリミングするには? (ID:8395)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
TransparentColor を使って、透過させたり、背景色を変更したりしてみました。 type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private 宣言 } public bmp:TBitmap; BkColor:TColor; end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin bmp := TBitmap.Create; bmp.PixelFormat := pf24bit; bmp.Height := 200; bmp.Width := 200; BkColor := clWhite; with bmp.Canvas do begin Brush.Color := BkColor; FillRect(Rect(0,0,bmp.Width,bmp.Height)); Brush.Color := clLime; Pen.Color := clRed; Pen.Width := 3; Ellipse(20,20,180,180); Brush.Color := clYellow; Pen.Color := clBlue; Rectangle(30,30,170,170); Brush.Color := BkColor; Pen.Color := BkColor; Ellipse(70,70,130,130); end; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin bmp.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin Refresh; Canvas.Draw(10,10,bmp); end; procedure TForm1.Button2Click(Sender: TObject); var tmp:TBitmap; begin tmp := TBitmap.Create; try tmp.Assign(bmp); tmp.TransparentColor := BkColor; tmp.Transparent := true; Refresh; Canvas.Draw(10,10,tmp); finally tmp.Free; end; end; procedure TForm1.Button3Click(Sender: TObject); var tmp1,tmp2:TBitmap; begin tmp1 := TBitmap.Create; tmp2 := TBitmap.Create; try tmp1.Assign(bmp); tmp2.Assign(bmp); tmp1.TransparentColor := BkColor; tmp1.Transparent := true; tmp2.Canvas.Brush.Color := clGreen; tmp2.Canvas.FillRect(Rect(0,0,tmp2.Width,tmp2.Height)); tmp2.Canvas.Draw(0,0,tmp1); Refresh; Canvas.Draw(10,10,tmp2); finally tmp1.Free; tmp2.Free; end; end; FormCreate で、元になるビットマップを作成しています。200x200 で背景色は 白 clWhite です。 Button1Click では元画像をそのまま Form1 に描画します。 Button2Click では、背景色である clWhite を透過して、Form1 に描きます。 Button3Click では、背景色を clGreen に変更して描きます。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.