お世話になります。
BMPにBMPを重ねる方法がわかりません。
重ねるBMPは重ねられるBMPよりも小さく、透ける処理も必要ないです。
ベタに重ねる方法があれば教えて下さい。
普通に TBitmap.Canvas.CopyRect とか Draw で出来るのでは。
junkiさん、ありがとうございます。
CopyRectをヘルプの例を読みましたが理解できません。(泣)
例えば、こんなでしょうか?
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;
> CopyRectをヘルプの例を読みましたが理解できません。(泣)
理解できないのは、どこですか?
> CopyRectをヘルプの例を読みましたが理解できません。(泣)
等倍で重ねるなら、たんに Canvas.Draw の方が簡単ですね。さすがにこれは
理解できるでしょうし。
junkiさん、ofZさん、通りすがりさん、ありがとうございます。
通りすがりさんのソースで理解できました。
Canvasプロパティが理解不足のようです。
ツイート | ![]() |