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;