안녕하세요.
10개의 이미지를 하나의 이미지 파일로 만들려고 합니다.
10개의 이미지를 순차적으로 위에서 아래쪽으로 붙이기 할려고 하는데...
그 함수나 예제를 올려 주세요.
.
.
.
Image1.Canvas.Draw(0, IHeight, ImageTemp.Picture.Graphic);
사용하니 작은 이미지는 정상인데,
이미지가 큰 사이즈는 저장공간이 부족에러납니다.
..
사용한 예제를 보완 수정 부탁 드립니다.
procedure TFormMain.BitBtn1Click(Sender: TObject);
var
i, IHeight: integer;
IFileName, Iname: string;
ImageTemp: TImage;
ImageBitmap: TBitmap;
DestRect, SrcRect: TRect;
begin
//사용자가 열기버튼을 크릭하면
ImageFileName := '';
if OpenPictureDialog1.Execute then
//오픈대화상자가 실행되면
begin
ImageFileName := OpenPictureDialog1.FileName;
//SaveStyles프로시져를 호출한다.
if BitBtn5.Caption = 'ILM &Original' then
begin
Image1.Picture.LoadFromFile(ImageFileName);
end else begin
ImageBitmap := TBitmap.Create;
IHeight := 0;
for i := 1 to 10 do
begin
Iname := copy(ExtractFileName(ImageFileName), 1, Pos('.', ExtractFileName(ImageFileName)) - 1);
IFileName := midstr( ImageFileName, 1, Length(ImageFileName) - 14) + Format('\slice\%s%3.3d-1.jpg',[Iname, i]);
if FileExists(IFileName) then begin
ImageTemp := TImage.Create(nil);
ImageTemp.Picture.LoadFromFile(IFileName);
Image1.Picture.Assign(ImageTemp.Picture);
ShowMessage('d');
ImageBitmap.Width := ImageTemp.Picture.Width;
ImageBitmap.Height := IHeight + ImageTemp.Picture.Height;
// ImageBitmap.
// DestRect := Rect(0, 0, ImageBitmap.Width, ImageBitmap.Height);
// SrcRect := Rect(0, 0, ImageTemp.Width, ImageTemp.Height);
// ImageBitmap.Canvas.BrushCopy(DestRect, ImageTemp.Picture.Bitmap, DestRect, clBlack);
// ImageBitmap.Canvas.CopyRect(SrcRect, ImageTemp.Canvas, DestRect);
// ShowMessage(Format('%d X %d ==> %d X %d',[ImageTemp.Picture.Width, ImageTemp.Picture.Height, ImageBitmap.Width, ImageBitmap.Height]));
ImageBitmap.Assign(ImageTemp.Picture.Bitmap);
ImageTemp.Free;
IHeight := ImageBitmap.Height;
end;
end;
Image1.Picture.Assign(ImageBitmap);
ImageBitmap.Free;
end;
StatusBar1.Panels[0].Text := Format('%d X %d', [Image1.Width, Image1.Height]);
StatusBar1.Panels[1].Text := ImageFileName;
end;
end;