새로운 글
새로운 덧글

(해당 내용은 모든 데이터셋(TDataSet을 상속받은 컴포넌트) 즉, FireDAC, dbExpress, dbGo(ADO) 등에 적용할 수 있습니다.)

 

대부분의 DBMS에서 Blob(Binary Large object) 타입의 컬럼을 만들 수 있습니다. 이 컬럼에는 이미지등의 큰 바이너리 데이터를 취급할 수 있습니다.

 

아래 코드는 Blob 컬럼에서 이미지를 읽고, 쓰는 델파이 예제입니다.

 

Blob 컬럼에 이미지 데이트 쓰기

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

var

  wic: TWICImage; // Microsoft Windows Imaging Component

  Stream: TMemoryStream;

begin

  wic := TWICImage.Create;
  Stream := TMemoryStream.Create;

  try

    wic.Assign(AImage.Picture);
    wic.SaveToStream(Stream);

    qryPhoto.Edit; // 데이터셋 수정

    (qryPhoto.FieldByName('PHOTO_PHOTO') as TBlobField).LoadFromStream(Stream);

    qryPhoto.Post;

  finally

    Stream.Free;

    wic.Free;
  end;

end;

 

Blob 컬럼에서 이미지 데이터 읽기

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

var

  wic: TWICImage; // Microsoft Windows Imaging Component

  Stream: TMemoryStream;

begin

  Stream := TMemoryStream.Create;

  wic := TWICImage.Create;

  try

    (qryPhoto.FieldByName('PHOTO_FIELD') as TBlobField).SaveToStream(Stream);

    if Stream.Size > 0 then

    begin

      try

        wic.LoadFromStream(Stream);

        Image1.Picture.Assign(wic);

      except

      end;

    end;

  finally

    Stream.Free;

    wic.Free;

  end;

end;

 

위에서 사용한 TWICImage는 Microsoft Windows Imaging Component를 캡슐화한 클래스로, 다양한 이미지 형식(Bitmap, JPEG, PNG, GIF, TIFF 등)을 로드할 수 있는 컨테이너 입니다.(http://docwiki.embarcadero.com/Libraries/en/Vcl.Graphics.TWICImage)

번호 제목 글쓴이 날짜 조회 수
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 1313
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 4511
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 1020
공지 [프로그래밍 강의] 2019.8~2019.12 관리자 2015.01.22 7929
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 관리자 2015.06.30 13576
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2019년 5월 업데이트 됨) 험프리 2014.01.16 150390
651 COM 오브젝트 연동 유닛 생성하기: Import a Type Library file 험프리 2016.09.30 996
650 이 달의 기술자료 - 2016년 10월 file 험프리 2016.09.30 246
649 [발표자료] 20160929 나만의 앱 완성하기 with 델파이 험프리 2016.09.21 639
648 안드로이드 SDK 설정 방법 file 험프리 2016.09.20 1540
647 [베를린 U1] TGrid가 네이티브 렌더링을 지원해 더 부드럽고 강력한 기능을 제공합니다. file 험프리 2016.09.20 323
646 [베를린 U1] 윈도우 태스크바 알림의 뱃지를 제어할 수 있습니다. file 험프리 2016.09.20 362
645 [업데이트][10.1 베를린] RAD Studio 10.1 베를린 서브스크립션 업데이트 1 [5] file 험프리 2016.09.19 995
644 윈도우 10 Anniversary 업데이트와 RAD Studio file 관리자 2016.09.09 626
643 RAD 스튜디오(델파이, C++빌더) 웹개발 방법(WebBroker, IntraWeb) 험프리 2016.09.07 995
642 [RAD서버] RAD Server 라이선스 등록 방법 손보라 2016.09.02 762
641 TeeChart 컴포넌트를 통해 다양한 차트 및 그래프로 데이터를 출력할 수 있습니다. file 험프리 2016.08.30 2319
640 [발표자료] 20160830 나만의 C++애플리케이션 완성하기 with C++빌더 험프리 2016.08.26 1489
639 이 달의 기술자료 - 2016년 09월 file 험프리 2016.08.25 416
638 [마이그레이션 사례] 감리교신학대학교 험프리 2016.08.25 819
637 인터베이스(Interbase) 에디션 안내 file 험프리 2016.08.25 844
636 [로드맵] RAD 스튜디오 로드맵(2016년 8월) file 험프리 2016.08.12 1723
635 FireDAC 성능 비교(BDE, dbGO(ADO), dbExpress, FireDAC) file 험프리 2016.08.09 1183
634 퀵레포트(Quick Report)에 사진 출력하기 험프리 2016.08.01 1163
» BLOB 컬럼에 (이미지 등의)데이터 읽고 쓰기 험프리 2016.08.01 3090
632 퀵레포트 보고서 엑셀로 내보내기(저장하기) [1] 험프리 2016.08.01 951


광고 모듈이 설치되어 있지 않아 실행을 중단합니다..