Q&A

  • GIF <-> Bitmap
어떠케 하죠???

밑에보니까 TGifimage라는거 쓰던데.. 써드파티컴포넌트 인건가요??

냥...뭐하나 받긴받았는데..받아서.

http://www.melander.dk/download/gifimage_src0202.zip

위에꺼 받아서요.. 소스는 아래.와 같이..근데.안되네욥.. -_-;;;



procedure TReport21.Button1Click(Sender: TObject);

var

DeskTopDC: HDc;

DeskTopCanvas: TCanvas;

BitmapRect: TRect;

Bitmap: TBitmap;

GifImage : TGIFImage;

begin

try

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

BitMap.Width := Chart1.Width;

BitMap.Height := Chart1.Height;

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



{전체 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;

1  COMMENTS
  • Profile
    김경태 2000.09.20 19:47
    김경태 wrote:

    > 어떠케 하죠???

    > 밑에보니까 TGifimage라는거 쓰던데.. 써드파티컴포넌트 인건가요??

    > 냥...뭐하나 받긴받았는데..받아서.

    > http://www.melander.dk/download/gifimage_src0202.zip

    > 위에꺼 받아서요.. 소스는 아래.와 같이..근데.안되네욥.. -_-;;;

    >

    > 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); {Panel1 영역}

    >

    > {전체 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;