Q&A

  • Tchart를 이미지로 저장 (캡춰말고..)
TChart를 이미지로 저장하는데요..런타임시에.

근데...현재 화면에 출력된 차트는.캡춰하면.되는데..

화면에 출력안된 차트라든가..가려진 차트라든가 비지블이 팰스인놈을..이미지로 저장하는 방법은 없나요??

그러니까..차트를 화면에 출력시키지 않고 이미지로 저장하는법..아래는..캡춰 소스입니다.. 상관없지만. -_-;; 그냥..



procedure TReport21.Button1Click(Sender: TObject);

var

DeskTopDC: HDc;

DeskTopCanvas: TCanvas;

BitmapRect: TRect;

Bitmap: TBitmap;

GifImage : TGIFImage;

begin

try

GifImage := TGIFImage.Create;

Bitmap := TBitmap.Create; {BMP를 저장할 bitmap 생성}

BitMap.Width := Chart1.Width;

BitMap.Height := Chart1.Height;

BitmapRect := Rect(0, 0, Chart1.Width, Chart1.Height); {Chart1 영역}



{전체 window의 device context(DC) 을 얻는다}

DeskTopDC := GetWindowDC(Chart1.Handle);

DeskTopCanvas := TCanvas.Create;

DeskTopCanvas.Handle := DeskTopDC; {전체 window의 canvas를 얻습니다}



// BitmapRect영역의 DeskTopCanvas에서 BitmapRect영역의 Bitmap.Canvas로 복사

Bitmap.Canvas.CopyRect(BitmapRect, DeskTopCanvas, BitmapRect);

GifImage.Assign(Bitmap);

if SaveDialog1.Execute then

GifImage.SaveToFile(SaveDialog1.FileName);

finally

ReleaseDC(GetDeskTopWindow, DeskTopDC);

DeskTopCanvas.Free;

Bitmap.Free;

end;

end;

0  COMMENTS