BMPにBMPを重ねる方法

解決


でるでる  2006-12-06 10:12:14  No: 24154  IP: 192.*.*.*

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

編集 削除
junki  URL  2006-12-06 13:49:03  No: 24155  IP: 192.*.*.*

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

編集 削除
でるでる  2006-12-06 15:59:18  No: 24156  IP: 192.*.*.*

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

編集 削除
通りすがり  2006-12-06 17:55:18  No: 24157  IP: 192.*.*.*

例えば、こんなでしょうか?
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 08:15:27  No: 24158  IP: 192.*.*.*

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

編集 削除
junki  2006-12-07 10:16:18  No: 24159  IP: 192.*.*.*

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

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

編集 削除
でるでる  2006-12-08 14:58:19  No: 24160  IP: 192.*.*.*

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

編集 削除