Q&A

  • 캔버스에서 이미지들만 잘라서 저장은 어떻게 해요...?
캔버스를 초기에 그려넣고 캔버스에 이미지들을 불러 가로로 붙여서 정열시키고 저장을 하면 이미지만 저장이 되는게 아니라 흰 공백의 캔버스까지 저장이 되더군요..

이미지를 하나만 불러오면 캔버스 사이즈를 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;



0  COMMENTS