본문 바로가기

프로그래밍/Delphi

xnView:GFL_SDK Bitmap을 Gfl_Bitmap으로 변환(메모리 방식)

//TBitmap 정보를 TMemoryStream을 이용하여 가공 가능한 GFL_BITMAP로 복사한다
procedure TGflBitmap.SaveBitmapToGflImage(ABitmap : TBitmap; var AGflImage : PGFL_BITMAP); var finfo: TGFL_FILE_INFORMATION; lp: TGFL_LOAD_PARAMS; e: GFL_ERROR; filename: string; mem : TMemoryStream; pMem : TPointer; begin mem := TMemoryStream.Create; ABitmap.SaveToStream(mem); mem.Position := 0; gflEnableLZW(GFL_TRUE); gflGetDefaultLoadParams(lp); lp.ColorModel := GFL_ARGB; lp.LinePadding := 4; pMem := mem.Memory; //<- 이렇게 메모리 포인터 변수를 지정하여 파라미터로 넘겨 주어야 함(골치 아프네요) // gflLoadBitmapFromMemory(mem.Memory, mem.Size, AGflImage, lp, finfo); <-- 이렇게 직접 mem.memory로 하면 안됨 함수 수행 후에 mem 자체가 nil로 변경되어 버림 gflLoadBitmapFromMemory(pMem, mem.Size, AGflImage, lp, finfo); mem.free; end;