|
안녕하세요 새해 복 많이 받으세요.
서론부터 들어 가겠습니다.
제가 지금 DB에 있는 이미지를 화면에 보여 주려 합니다.
그런데 이 이미지가 다양합니다. BMP, JPEG, PNG, GIF, TIF... 등등이 있습니다.
Stream = (TMemoryStream*)Qry->CreateBlobStream(Qry->FieldByName("VMS_PIC"), bmRead);
로 DB에 있는 이미지를 Stream에 저장합니다.
다음엔 이미지 타입(png,gif,tif,...)에 따라 분기하여 이미지를 그려줍니다.
if(strType.UpperCase() == "PNG")
{
TPNGGraphic *pImg = new TPNGGraphic();
pImg->LoadFromStream(Stream);
TImage *pImage = GetImageFromIndex(i);
pImage->Picture->Bitmap->Assign(pImg);
delete pImg;
}
else if(strType.UpperCase() == "GIF")
{
TGIFImage *pImg = new TGIFImage();
pImg->LoadFromStream(Stream);
TImage *pImage = GetImageFromIndex(i);
pImage->Picture->Bitmap->Assign(pImg);
delete pImg;
}
else if(strType.UpperCase() == "TIF")
{
/*
TTIFFGraphic *pImg = new TTIFFGraphic();
pImg->LoadFromStream(Stream);
TImage *pImage = GetImageFromIndex(i);
pImage->Picture->Bitmap->Assign(pImg);
delete pImg;
*/
}
먼저 PNG는 GraphicEx을 구해다가 include및 library link해서 했고요,
GIF는 gifimage22.exe설치하고 include및 libray link했습니다.
TIF는 GraphicEx에서 지원한다고 하여 별 세팅하지 않고 사용했습니다.
그런데 TIF타입을 지원하지 않는다는 메시지가 뜨더니 진행을 못하더군요.
게시판에 보면 GraphicEx가 현존하는 거의 모든 이미지를 지원한다고 하는데,
제가 뭘 잘 못 사용하고 있는 거 아닌가 해서 질문드립니다.
과연 GraphicEx는 모든 이미지를 지원하는 건가요? gifimage22.exe는 필요없는 건가요?
또, 꼭 Component Install과정을 거쳐야 하나요?
방법 좀 간단히 쉽게 설명 부탁드려요.
|