BMPにBMPを重ねる方法

解決


でるでる  2006-12-06 19:12:14  No: 24154

お世話になります。
BMPにBMPを重ねる方法がわかりません。
重ねるBMPは重ねられるBMPよりも小さく、透ける処理も必要ないです。
ベタに重ねる方法があれば教えて下さい。


junki  URL  2006-12-06 22:49:03  No: 24155

普通に TBitmap.Canvas.CopyRect とか Draw で出来るのでは。


でるでる  2006-12-07 00:59:18  No: 24156

junkiさん、ありがとうございます。
CopyRectをヘルプの例を読みましたが理解できません。(泣)


通りすがり  2006-12-07 02:55:18  No: 24157

例えば、こんなでしょうか?
procedure TForm1.Button1Click(Sender: TObject);
var
  BaseBmp, OverBmp: TBitmap;
  ImagePath: String;
begin
  ImagePath := 'C:\Program Files\Common Files\Borland Shared\Images\';
  //
  BaseBmp := TBitmap.Create;
  OverBmp := TBitmap.Create;
  // 640x480のイメージを読込み--(1)
  BaseBmp.LoadFromFile(ImagePath+'BackGrnd\QUADRILL.BMP');
  // 240x180のイメージを読込み--(2)
  OverBmp.LoadFromFile(ImagePath+'Splash\16Color\TECHNLGY.BMP');
  // (2)のイメージ全体を(1)のイメージの位置(20,30)に重ねる
  BaseBmp.Canvas.CopyRect(Rect(20,30,260,210),
                          OverBmp.Canvas,
                          Rect(0,0,240,180));
  // どうなったか?確認してみる
  Canvas.Draw(5,10,BaseBmp);
  //
  BaseBmp.Free;
  OverBmp.Free;
end;


ofZ  2006-12-07 17:15:27  No: 24158

> CopyRectをヘルプの例を読みましたが理解できません。(泣)
理解できないのは、どこですか?


junki  2006-12-07 19:16:18  No: 24159

> CopyRectをヘルプの例を読みましたが理解できません。(泣)

等倍で重ねるなら、たんに Canvas.Draw の方が簡単ですね。さすがにこれは
理解できるでしょうし。


でるでる  2006-12-08 23:58:19  No: 24160

junkiさん、ofZさん、通りすがりさん、ありがとうございます。
通りすがりさんのソースで理解できました。
Canvasプロパティが理解不足のようです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加