캔버스를 초기에 그려넣고 캔버스에 이미지들을 불러 가로로 붙여서 정열시키고 저장을 하면 이미지만 저장이 되는게 아니라 흰 공백의 캔버스까지 저장이 되더군요..
이미지를 하나만 불러오면 캔버스 사이즈를 autosize로 하면 되지만,,리스트 박스에 여러개의 이미지들의 경로가 있고 for문으로 하나씩 캔버스에 그려넣거든요..옆으로 붙여서 그런데 모두 그려넣고 저장을 하면 빈 공백의 캔버스까지 저장이 되는데 캔버스에서 이미지만 잘라서 붙여넣는 방법은 없는지요? 이미지들의 세로(y)값은 같습니다.처음 불러온 이미지의 y 값은 모두 같고 x값만 틀리거든요 . 그래서 가로로 붙여서 나열을 시키는데.....부탁드립니다. 아래에 소스좀....
procedure TForm1.Button5Click(Sender: TObject);
var
I, X,Y: Integer;
Bitmap: TBitmap;
begin
Bitmap := TBitmap.Create;
try
X := 0;
Y := 0;
for I := 0 to ListBox1.Items.Count - 1 do
begin
Bitmap.LoadFromFile(ListBox1.Items[I]);
Image1.Canvas.Draw(X, 0, Bitmap);
X := X + Bitmap.Width;
end;
Y := Y + Bitmap.Height;
image1.Width:=X;
image1.Height:=Y;
//showmessage(IntToStr(y));
finally
Bitmap.Free;
end;
end;
{bitmap 파일 저장하기 }
procedure TForm1.Button4Click(Sender: TObject);
var
Fname,Exten:string;
begin
SaveDialog1.Filter:='bitmap files(*.bmp)|*.bmp';
if SaveDialog1.Execute then
begin
Fname:=SaveDialog1.FileName;
Exten:=Fname+'.'+'bmp';
form1.Image1.Picture.SaveToFile(Exten);
end;
end;