19,468
社区成员
发帖
与我相关
我的任务
分享
CFile file;
CFileException fe;
CString FileName ;
DWORD dwFileLength;
BYTE* pBuff;
FileName=L"\\Storage Card\\读取内存jpgg\\0-1-10.jpg";
if(0 == file.Open(FileName, CFile::modeRead | CFile::shareDenyWrite, &fe)) //打开文件
{
AfxMessageBox(L"打开文件失败");
return ;
}
dwFileLength = file.GetLength(); //取得文件总长度
pBuff=new BYTE[dwFileLength];
file.Seek(0 ,CFile::begin); //定位
file.Read((BYTE*)(pBuff) , dwFileLength); //读字节
file.Close();
IImagingFactory *pImgFactory = NULL;
IImage *pImage = NULL;
HRESULT hrCoInit;
HDC hdcCont=NULL,hdcMem=NULL;
ImageInfo pimageinfo;//= new sizeof(ImageInfo);
RECT rect;
hrCoInit=CoInitializeEx(NULL, COINIT_MULTITHREADED);
CoCreateInstance(CLSID_ImagingFactory,NULL,1,IID_IImagingFactory,(void**) &pImgFactory);
pImgFactory->CreateImageFromBuffer(pBuff,dwFileLength,BufferDisposalFlag::BufferDisposalFlagNone ,&pImage);
pImage->GetImageInfo( &pimageinfo);
rect.top =0;
rect.left =0;
rect.right =pimageinfo.Width ; //这里可以得到宽
rect.bottom =pimageinfo.Height ;//这里可以得到高
pImage->Draw(m_dcCompatible,&rect,NULL); //m_dcCompatible 是一个CDC....