GraphicEX 라이브러리 사용해서 image 컴포넌트에 tif 화일을 올려 놓았습니다.
GraphicEX 라이브러리 데모를 참조했습니다.
-------------------------------------------------------------------------
var
Start: DWORD;
GraphicClass: TGraphicExGraphicClass;
Graphic: TGraphic;
tStream : TMemoryStream;
begin
tStream := TMemoryStream.Create;
GraphicClass := FileFormatList.GraphicFromContent(FileName);
if GraphicClass = nil then
begin -> 1번
Image1.Picture.LoadFromFile(FileName);
ShowMessage(tstreamsize is ' + inttostr(tstream.size));
end
else
begin -> 2번
Graphic := GraphicClass.Create;
Graphic.LoadFromFile(FileName);
Image1.Picture.Graphic := Graphic;
Graphic.SaveToStream(tstream);
ShowMessage(tstreamsize is ' + inttostr(tstream.size));
end;
end;
-----------------------------------------------------------------
1번은 tif 이외 bmp, jpe 화일들을 불러오면 1번을 타구
tif 화일을 불러오면 2번을 타는듯합니다.
문제은 전 tif 화일들만 db로 저장할려구 합니다.
그래서 모두 2번을 타죠..
그런데.. 2번 로직에서 showmessage size 0 으로 나옵니다.
(1번 로직 showmessage sizw 은 실제 그림 크기를 가져옵니다.)
tif 화일이 image 컴포넌트에는 보여지나 실질적으로 그림을 TMemoryStream
에서 못가져온다는 생각이 듭니다..
그래서 이것을
ParamByName('blobfield').LoadFromStream(BStream, ftBlob);
update 쿼리를 날리면 ORA -24801 OCL LOB 매개변수가 맞지 않는다는 오류
가 떨어집니다..
환경은 오라클 9i, 델파이 7, 다이렉트 컴포넌트를 사용해서 연결하구 있습니다.
tif 화일은 CCITT Group 4으로 압축된 Tiff 아닙니다.
부족한 부분 조언 부탁드립니다. 아니면 다른 방법을 알려주시면 고맙겠습니다.