Q&A

  • 디비의 BLOB형태로있는 이미지를 불러오면 깨져보입니다.
Image 컴포넌트를 이용해서 디비의 이미지를 불러오는데, 조회 해 보면
이미지가 깨져보입니다.
모든 이미지가 깨지는 건 아니고 몇 몇 파일만 그럽니다.(크기가 큰거..)

DBImage를 사용 해 봤는데, bmp형식 밖에 지원을 못해서..
다시 Image 컴포넌트를 쓰고 있습니다.

디비의 이미지를 웹 상에서 보면 이미지가 깔끔하게 나오는데,
델파이에서 보면 깨져서 나옵니다..
웹에서 제대로 나오는것으로 보아 디비에는 잘 저장 되지만, 이미지를
불러오는 과정에서 뭔가 오류가 있는 것 같습니다.

자료를 찾아헤멨는데.. 도움이 될 만한게 없네요..
혹시나해서 비슷한 소스가 보이는대로 마구 테스트 해 보고 있는데..
조언 부탁드려요.. T^T

p.s  이미지 불러오는 소스 입니다.

    mapImage := TJPEGImage.Create;
    MS := TMemoryStream.Create;
    (Table_S.FieldByName('MAP_IMAGE') As TBlobField).SaveToStream(MS);
    MS.Position:=0;
    mapImage.LoadFromStream(MS);
    Image1.Picture.Assign(mapImage);

    mapImage.Destroy;
    MS.Destroy;

이렇게도 해 보았습니다.

    mapImage := TJpegImage.Create;
    BStream := Table.CreateBlobStream(Table_S.FieldByName('MAP_IMAGE'),bmRead);
    SDW_Jpeg.LoadFromStream(BStream);
    Image1.Refresh;
    Image1.Picture.Assign(mapImage);
3  COMMENTS
  • Profile
    최병철 2002.09.28 21:19
    아래의 코딩 문장은 MS-SQL Server의 테이블을 가지고
    테스트 한 부분입니다

    Image1.Pictuer.AsSign(Query1.FieldByName('Test_Image'));

    참고 하세요.

    그리고 혹시 모르니 델파이 BDE Administrator에서
    Blob Size 크기를 10000정도로 정정하시고
    테스트 해 보세요





  • Profile
    김진아 2002.09.28 21:36

    Blob Size는 1024000으로 설정된 상태구요..
    알려주신 방법대로 해 봤는데 'BitMap image is not valid' 이란
    메세지가 나와요.. DBImage를 사용했을 때도 똑같은 이미지가 나왔었는데..
    아마 이 방법으로 하면 BitMap 형식밖에 지원이 안 되나봐요..

    하지만.. 답변 해 주신거 감사드려요..
    좋은 하루 보내세요.. ^-^

  • Profile
    최병철 2002.09.28 21:39
    예,
    님의 말씀대로 Db에 저장시에는 BitBmp형식만
    저장이 됩니다.

    그래서 BitBmp에서 Jpg로 변환을 하시야 될 것입니다.

    참고 하세요