Q&A

  • DB에 저장된 JPG 데이타를 TImage로 로딩시 깨짐
여러분께 질문을 드립니다.
DB에 저장된 JPG  이미지 데이타를 TImage로 로딩시 반만 보이는(깨진다고 해야 하나요?)문제 때문에 골이 아픕니다.

AutoSize, Stretch등을 조절하는것도 의미가 없구요..

여기저기 게시판을 찾아보았지만, 해결이 않되더군요.

여러분들의 답변을 부탁드립니다.

감사합니다
3  COMMENTS
  • Profile
    좋은나무 2005.11.08 09:06
    사용하시는 DB의 종류와 버전 그리고 해당 이미지 데이타를 저장하는 데이타 타입그리고
    저장하실때 사용하신 코드를 적어주시면...
    문제를 같이 고민해볼 수 있을것 같네요...
    막연하게 이렇게만 올리시면...저도 사실 감잡기 힘든데........
  • Profile
    희아빠 2005.11.09 23:15
    관심을 가지시고 답변을 주심에 감사합니다
    DataBase : MSSQL 2000 Server
    이미지의 데이타 타입 : image (길이 16는 Default 이고요)

    //이미지를 저장하는 코드입니다

       JPEGImage:= TJPEGImage.Create;
       TempPictureStream := TMemoryStream.Create;

       If IMAGE_1.picture.graphic <> nil Then
       Begin
           JPEGImage.assign(IMAGE_1.picture.graphic);
            IMAGE_1.Picture.Graphic.SaveToStream(TempPictureStream);
       End
       Else TempPictureStream.SetSize(0);

       QUERY.ParamByName('DB_IMAGE').LoadFromStream(TempPictureStream,FTBLOB);

            .
            .
            .
            .

       QUERY.ExecSQL



    //불러오는 코드 입니다
    procedure JPEGLoadFromDB(BlobField: TBlobField; Image: TImage);
    var
        jpg : TJPEGImage;
        mem : TMemoryStream;
    begin
        BlobField.SaveToFile(BlobField.FullName + '_tmp.jpg');
        If GetJpegFormat_Header(BlobField.FullName + '_tmp.jpg') = False Then // 이미지가 JPG 형식인지를 체크...
        begin
          exit;
        end;
        jpg := TJPEGImage.Create;
        mem := TMemoryStream.Create;
        try
            if BlobField.BlobSize = 0 Then
                Image.Picture := nil
            else if BlobField.IsNull then
                Image.Picture := nil
            else begin
                BlobField.SaveToStream(mem);
                mem.Position := 0;
                jpg.LoadFromStream(mem);
                Image.Picture.Graphic := jpg;
            end;
        finally
            mem.Free;
            jpg.Free;
        end;
    end;


  • Profile
    델파이-델짱 2005.11.10 00:23
    아래 처럼 해보세요.^^;
    var
        BitmapImage : TJPEGImage;
        Ms: TMemoryStream;
    begin
        QUERY1.Close;
        QUERY1.SQL.Clear;
        QUERY1.SQL.Add('select DB_IMAGE from imagetable');
        QUERY1.Open;
        try
            BitmapImage := TJPEGImage.Create;
            MS          := TMemoryStream.Create;
            (QUERY1.FieldByName('DB_IMAGE ') As TBlobField).SaveToStream(MS);
            MS.Position:=0;
            BitmapImage.LoadFromStream(MS);
            Image1.Picture.Assign(BitmapImage);
         finally
          BitmapImage.Free;
          MS.Free;
        end;
    end;


    • 우종복
    • 2005.11.09 16:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • HEIM(델파리)
      2006.08.24 21:07
      잡아 놓은 화면에 대한 처리하기 원하시는 라인에 대한 scanline을 해보셔요.
    • 이복만
    • 2005.11.09 06:54
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 프리란서
      2005.11.09 07:05
      각자의 환경들이 다르니 이게 답이 될지는 모르겠습니다만 예전에 그런일이 있었습니다. 그때 나의 문제는...
    • 이영동
    • 2005.11.09 01:57
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 고금순
      2006.04.25 02:20
    • 최용일
      2005.11.09 02:30
      안녕하세요. 최용일입니다. Access Violation에러가 나는것을 보면... 아마도 DBGrid1.Fields[0].Value;...
    • 김현우
    • 2005.11.08 22:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2005.11.11 20:39
      개발툴이 델파이 라면 파이어버드 추천합니다 파이어버드는 RDB라 조인이나 기타 쿼리문으로 데이터 처리...
    • 설레임
    • 2005.11.08 21:38
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정근
      2005.11.08 22:12
      제어판 전원관리에서 최대절전모드 탭에서 체크 해제해야 되는데.. 프로그램으로는 모르겠네요.. 체크 해...
    • 희아빠
    • 2005.11.08 04:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 좋은나무
      2005.11.08 09:06
      사용하시는 DB의 종류와 버전 그리고 해당 이미지 데이타를 저장하는 데이타 타입그리고 저장하실때 사용...
    • 희아빠
      2005.11.09 23:15
      관심을 가지시고 답변을 주심에 감사합니다 DataBase : MSSQL 2000 Server 이미지의 데이타 타입 : image...
    • 델파이-델짱
      2005.11.10 00:23
      아래 처럼 해보세요.^^; var     BitmapImage : TJPEGImage;    &n...
    • 최영식
    • 2005.11.08 03:15
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 박지용
      2005.11.08 05:02
      Zeos는  libmysql.dll을 사용해서 MySQL을 Access합니다. 그런데, Zeos final version이 ...
    • 최영식
      2005.11.09 08:03
      답변에 정말 감사드립니다. 그런데 Zeos의 Protocol에 보면 4.1까지 밖에 없네요 5.X대를 사용할려면 무...
    • 박지용
      2005.11.11 03:40
      네, Zeos MySQL Version은 Protocol은 4.1로 사용하시면 됩니다. MySQL 5.x의 \bin\libmysql.dll ...
    • 최영식
      2005.11.12 05:54
      관심 어린 답변에 감사 드립니다.
    • 프리란서
      2005.11.08 18:14
      이건 정답은 아닙니다. 그저 참고 하시라고 적는겁니다. 아실지 모르겠으나 Edit에서는 다음과 같이 하...
    • 권민수
    • 2005.11.07 23:55
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.11.08 00:48
      안녕하세요. 최용일입니다. FindComponent는 자식컴포넌트 그러니까 폼내의 컴포넌트를 찾기위해 쓰이는...
    • 모영철
      2005.11.08 00:19
      추측해보건데.. 원하시는 작업을 하시려면 먼저 모든 폼을 미리 Create 해주셔야 할거 같구요.. T_Fo...
    • 김소연
    • 2005.11.07 23:43
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 모영철
      2005.11.08 00:23
      var   aoc : Array[0..5] of char;   Str : String; .. ..    str :=...
    • 김소연
      2005.11.08 00:47
      그렇게 바로 대입하니. 제가 원하는 값이 들어가지 않아서 말이져.. 배열의 있는 HEX 값들이 스트링으로...
    • 모영철
      2005.11.08 02:38
      아 그러면 배열이 char가 아니라 혹시 byte배열인가요? move 테스트 해봤는데 에러가 팡팡 나오네요..안...
    • 최용일
      2005.11.08 00:50
      안녕하세요. 최용일입니다. 아래와 같이 해보세요.... <!--CodeS--> var    ...
    • 김소연
      2005.11.09 00:51
      말씀하신것처럼 해보았는데요... 속도가 아주 늦는데요 디버그를 떠보니.. move행에서 시간이 아주 많...
    • 최용일
      2005.11.09 02:17
      안녕하세요. 최용일입니다. 글쎄요... 1M짜리 배열 테스트해봐도 0.01초도 안걸리는데... 어찌된 일일까...
    • 델파인
    • 2005.11.07 23:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2005.11.08 00:53
      안녕하세요. 최용일입니다. 크게 2가지 방법이 있겠네요... 이미지(TImage)나 비트맵(TBitmap)객체에...
    • 박지용
      2005.11.08 05:19
      레지스트리 값으로만으로는 할 수 없습니다. 학교에서 사용하던 것은 하드디스크 미러링 솔루션이 장...
    • 최용일
      2005.11.08 00:58
      안녕하세요. 최용일입니다. JPEG와 같이 이미지를 압축하는 포멧을 이용하는 방법... ==> 어느정도 ...
    • 임우식
      2005.11.08 01:25
    • 박정훈
      2005.11.07 23:01
      바코드 스캐너 때문에 저두 일전에 여러 모델들을 찾아본적이 있습니다.  4만원대의 저가형에...
    • 김연재
    • 2005.11.07 00:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 공성환
      2005.11.07 18:59
      예전에 사용했던코드입니다. 참고해보세요... unit Unit1; interface uses   Windows,...
    • 김현철
    • 2005.11.05 23:21
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 우소
      2005.11.07 19:35
      정확히 무슨 말인지 이해가 안가는데.. 델파이7에서 압축된 파일을 풀었다는게? 프로그램을 설치했다...