|
ADOQuery에서 읽어들인 DISP_IMAGE 데이터를 임시파일에 저장한 후
TGIFImage instance는 그 임시파일에서 로드해보시져~~
당연히 사용된 임시파일은 삭제하시면 되구요...
이렇게 해도 로드가 안된다면 DB에 저장된 파일형식을 확인해보셔야 할듯 하구요..
그럼~~
땅주인 님이 쓰신 글 :
: 정확히는 모르겠구요.. 아는 선에서 .. ㅠ.ㅠ;;
: 에러 메세지는 이미지 파일마다 매직비트가 있는데요.. 그 매직 비트가 틀리다는 메세지인 것으로 보입니다.
: 가령, Bitmap 파일은 파일의 맨 처음 두 바이트가 'BM' 이고.. JPEG는 뭔 지 모르겠지만 암튼..
: 그런 매직 비트가 다르다는 것 같은데요..
: DB에 들어 있는 이미지 파일이 gif 파일이 맞는 것인 지 확인이 필요해 보이네요.
: 그냥 TImage에 Load해서 해 보시지요.
: 아니면 다른 분에게 패수~~~
:
: gif 님이 쓰신 글 :
: : #include <GIFImg.hpp> 을 해주고
: :
: : TMemoryStream *pMemoryStream = NULL;
: : pMemoryStream = (TMemoryStream *)pADOQuery->CreateBlobStream(pADOQuery->FieldByName("DISP_IMAGE"), bmRead);
: :
: : TGIFImage *pGIFImage = new TGIFImage();
: :
: : pGIFImage->LoadFromStream(pMemoryStream);
: :
: : pDisplay->pImage->Picture->Bitmap->Assign(pGIFImage);
: :
: : delete pGIFImage;
: :
: : 이렇게 작성을 했습니다.
: :
: : 근데
: :
: : pGIFImage->LoadFromStream(pMemoryStream); 이부분에서
: :
: : invalid gif signature 이런 에러가 뜨던데 이유를 도저히 못찾겠어요
: :
: : 왜그런지 알려주세요 ㅠㅠ
: :
: : XE5 버전을 사용중입니다.
|