Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14721] Re:image, blob 처리, 이런 방법이 가능한가요?
루도라 [] 1977 읽음    2013-07-04 08:54
blob 데이타가 어떤 이미지 포멧인지 알고 있다면..

procedure LoadGraphic(Image: TImage; Stream: TStream; GraphicClass: TGraphicClass);
begin
  Image.Graphic:= GraphicClass.Create;
  Image.Graphic.LoadFromStream(Stream);
end;

...

  BStream := query1.CreateBlobStream(query1.FieldByname('photo'),bmRead);

  //a_image := BStream; -> 이 부분을 어떻게 처리해야 하는 지 모르겠습니다.
  LoadGraphic(a_image, BStream, TBitmap { or TJPEGImage });

위처럼 GraphicClass 를 지정해서 생성한 후 LoadFromStream 으로 데이타를 로딩하면 됩니다.

쩌그노트 님이 쓰신 글 :
: 오라클 blob 이미지를 읽어서 함수에 태워 원하는 결과값을 얻어내는 로직을 구현하는데
: 이미지 관련 형식을 잘 몰라 질문 드립니다.
:
: //기존 소스
: procedure TMainForm.buttonClick(Sender: TObject);
: var i, iErr : integer;
:     a_image, b_image : TImage;
: begin
:      //해당 폴더의 이미지를 flist_box에 뿌려준다.
:      flist_box.ApplyPath(cxFolder.Text);
:
:      for i := 1 to fListBox.Items.Count do
:      begin
:           a_image := TImage.Create(Self);
:           b_image := TImage.Create(Self);
:
:           a_image.Picture.LoadFile(fListBox.Items[i-1]);
:
:           //리스트박스의 이미지파일을 순차적으로 함수에 태운다.
:           //함수의 형식은 정해져 있기 때문에 수정불가함.
:           iErr := g_ImageLib.GetCropImage(a_image, b_image);
:      end;
:      a_image.Free;
:      b_image.Free;
: end; 
:
: -> 수정 사항. 폴더의 이미지를 선택하는 게 아니라 오라클 DB의 Blob 이미지를 불러 와야 함.
: procedure TMainForm.buttonClick(Sender: TObject);
: var i, iErr : integer;
:     a_image, b_image : TImage;
:     BStream : TStream;
: begin
:      with Query1 do
:      begin
:           close;
:           sql.clear;
:           sql.add(' select photo from test  ');
:           sql.add(' where photo_no = '1234' ');
:           open;
:      end;
:     
:      for i := 1 to query1.recordcount do
:      begin
:           a_image := TImage.Create(Self);
:           b_image := TImage.Create(Self);
:
:           BStream := query1.CreateBlobStream(query1.FieldByname('photo'),bmRead);
:
:           a_image := BStream; -> 이 부분을 어떻게 처리해야 하는 지 모르겠습니다.
:                                      데이타 형식을 맞춰야 할 거 같은데 가능 한지요?
:          
:           //리스트박스의 이미지파일을 순차적으로 함수에 태운다.
:           //함수의 형식은 정해져 있기 때문에 수정불가함.
:           iErr := g_ImageLib.GetCropImage(a_image, b_image);
:      end;
:      a_image.Free;
:      b_image.Free;
: end; 
:
: inttostr처럼 TStream -> TImage으로 형식을 맞추는 작업이 아예 불가능한지,
: 아니면 다른 방법이 있는 건지 조언을 해주시면 감사하겠습니다. 
:

+ -

관련 글 리스트
14708 image, blob 처리, 이런 방법이 가능한가요? 쩌그노트 1892 2013/06/14
14728     Re:image, blob 처리, 이런 방법이 가능한가요? gomsun2 1888 2013/07/18
14721     Re:image, blob 처리, 이런 방법이 가능한가요? 루도라 1977 2013/07/04
14859         Re:Re:image, blob 처리, 이런 방법이 가능한가요? 좋은 사람 2218 2013/11/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.