掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
SavtoToFileで上書きエラー? (ID:24479)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
自己レスです。 ソースです。 procedure TForm1.Button1Click(Sender: TObject); var BaseBmp, OverBmp: TBitmap; ImagePath: String; ExePath: String; BaseBmpFname: String; OverBmpFname: String; AfterBMPFname: String; fd: Integer; BaseXSize,BaseYSize:Integer; OverXSize,OverYSize:Integer; begin flg := 0; Repeat Application.ProcessMessages; ExePath := ExtractFilePath(Application.ExeName); AfterBMPFname:= ExePath + 'Afetr.BMP'; BaseBmpFname := ExePath + 'Before.BMP'; OverBmpFname := ExePath + '目安2.BMP'; // BaseBmp := TBitmap.Create; OverBmp := TBitmap.Create; // 重ねられるイメージを読込み--(1)BaseBmp BaseBmp.LoadFromFile(BaseBmpFname); //重ねられるイメージの[高さ、幅]の情報を得る BaseXSize := BaseBmp.Width; BaseYSize := BaseBmp.Height; // 重ねるイメージを読込み--(2) OverBmp OverBmp.LoadFromFile(OverBmpFname); //重ねるイメージの[高さ、幅]の情報を得る OverXSize := OverBmp.Width; OverYSize := OverBmp.Height; // (2)のイメージ全体を(1)のイメージの位置(左上)に重ねる//左上 BaseBmp.Canvas.CopyRect(Rect(0,0,OverXSize,OverYSize), OverBmp.Canvas,Rect(0,0,OverXSize,OverYSize)); // (2)のイメージ全体を(1)のイメージの位置(右上)に重ねる//右上 BaseBmp.Canvas.CopyRect(Rect(BaseXSize- OverXSize,0,BaseXSize,OverYSize), OverBmp.Canvas,Rect(0,0,OverXSize,OverYSize)); // (2)のイメージ全体を(1)のイメージの位置(左下)に重ねる//左下 BaseBmp.Canvas.CopyRect(Rect(0,BaseYSize-OverYSize,OverXSize,BaseYSize), OverBmp.Canvas,Rect(0,0,OverXSize,OverYSize)); // (2)のイメージ全体を(1)のイメージの位置(右下)に重ねる//右下 BaseBmp.Canvas.CopyRect(Rect(BaseXSize-OverXSize,BaseYSize-OverYSize,BaseXSize,BaseYSize), OverBmp.Canvas,Rect(0,0,OverXSize,OverYSize)); // どうなったか?確認してみる Canvas.Draw(5,10,BaseBmp); Sleep(10); //記録 BaseBmp.SaveToFile(AfterBMPFname); BaseBmp.Free; OverBmp.Free; Until flg = 1; end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; procedure TForm1.Button3Click(Sender: TObject); begin flg := 1; end; Sleep(10)は関係ないかもしれません。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.