Q&A

  • tif 그림 화일 image 컴포넌트에 가져와서 db 저장 방법 문의?
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 아닙니다.

부족한 부분 조언 부탁드립니다. 아니면 다른 방법을 알려주시면 고맙겠습니다.
1  COMMENTS
  • Profile
    nilriri™ 2006.12.05 01:18
    출처 : http://www.torry.net/quicksearchd.php?String=tiff&Title=Yes