我现在要求做一个不知道图片格式,只知道是图片,读入到内存后显示。需要用
DWORD GetFileSize(CString strFilePath)
{
CFile file;
CFileStatus Status;
if (file.GetStatus (strFilePath, Status))
return Status.m_size;
else
return 0;
}int nSize=GetFileSize("图片地址");
char *pFile=new char[nSize];
HFILE hFile=_lopen("图片地址",2);
int iBytes=_lread(hFile,pFile,nSize);
_close(hFile);
这个读取图片后显示出来,大家有没有解决方法呢?谢谢各路高手
DWORD GetFileSize(CString strFilePath)
{
CFile file;
CFileStatus Status;
if (file.GetStatus (strFilePath, Status))
return Status.m_size;
else
return 0;
}int nSize=GetFileSize("图片地址");
char *pFile=new char[nSize];
HFILE hFile=_lopen("图片地址",2);
int iBytes=_lread(hFile,pFile,nSize);
_close(hFile);
这个读取图片后显示出来,大家有没有解决方法呢?谢谢各路高手
GDI+的Image类
If FileExist(FileName) = True Then
Set Bmp = New BmpParser
LoadPictureFromFile = Bmp.LoadPictureFromFile(FileName, Me)
Set Bmp = Nothing
If LoadPictureFromFile = False Then
Set Jpg = New JpgParser
LoadPictureFromFile = Jpg.LoadPictureFromFile(FileName, Me)
Set Jpg = Nothing
If LoadPictureFromFile = False Then
Set Png = New PngParser
LoadPictureFromFile = Png.LoadPictureFromFile(FileName, Me)
Set Png = Nothing
If LoadPictureFromFile = False Then
Set Gif = New GifParser
LoadPictureFromFile = Gif.LoadPictureFromFile(FileName, Me, Index)
Set Gif = Nothing
If LoadPictureFromFile = False Then
Set Tiff = New TifParser
LoadPictureFromFile = Tiff.LoadPictureFromFile(FileName, Me, Index)
Set Tiff = Nothing
If LoadPictureFromFile = False Then
Set Ico = New IcoParser
LoadPictureFromFile = Ico.LoadPictureFromFile(FileName, Me, Index)
Set Ico = Nothing
If LoadPictureFromFile = False Then
Set Wmf = New WmfParser
LoadPictureFromFile = Wmf.LoadPictureFromFile(FileName, Me)
Set Wmf = Nothing
If LoadPictureFromFile = False Then
Set Emf = New EmfParser
LoadPictureFromFile = Emf.LoadPictureFromFile(FileName, Me)
Set Emf = Nothing
If LoadPictureFromFile = False Then
Set Psd = New PsdParser
LoadPictureFromFile = Psd.LoadPictureFromFile(FileName, Me)
Set Psd = Nothing
If LoadPictureFromFile = False Then
Set Tga = New TgaParser
LoadPictureFromFile = Tga.LoadPictureFromFile(FileName, Me)
Set Tga = Nothing
If LoadPictureFromFile = False Then
Set Dds = New DdsParser
LoadPictureFromFile = Dds.LoadPictureFromFile(FileName, Me)
Set Dds = Nothing
If LoadPictureFromFile = False Then
Set Pcx = New PcxParser
LoadPictureFromFile = Pcx.LoadPictureFromFile(FileName, Me)
Set Pcx = Nothing
If LoadPictureFromFile = False Then
Set Pnm = New PnmParser
LoadPictureFromFile = Pnm.LoadPictureFromFile(FileName, Me)
Set Pnm = Nothing
If LoadPictureFromFile = False Then
Set Sct = New SctParser
LoadPictureFromFile = Sct.LoadPictureFromFile(FileName, Me)
Set Sct = Nothing
If LoadPictureFromFile = False Then
Set Sgi = New SgiParser
LoadPictureFromFile = Sgi.LoadPictureFromFile(FileName, Me)
Set Sgi = Nothing
If LoadPictureFromFile = False Then
Set Ras = New RasParser
LoadPictureFromFile = Ras.LoadPictureFromFile(FileName, Me)
Set Ras = Nothing
If LoadPictureFromFile = False Then
Set Rsb = New RsbParser
LoadPictureFromFile = Rsb.LoadPictureFromFile(FileName, Me)
Set Rsb = Nothing
If LoadPictureFromFile = False Then
Set Wbm = New WbmParser
LoadPictureFromFile = Wbm.LoadPictureFromFile(FileName, Me)
Set Wbm = Nothing
If LoadPictureFromFile = False Then
Set Iff = New IffParser
LoadPictureFromFile = Iff.LoadPictureFromFile(FileName, Me)
Set Iff = Nothing
If LoadPictureFromFile = False Then
Set Xbm = New XbmParser
LoadPictureFromFile = Xbm.LoadPictureFromFile(FileName, Me)
Set Xbm = Nothing
If LoadPictureFromFile = False Then
Set Pcd = New PcdParser
LoadPictureFromFile = Pcd.LoadPictureFromFile(FileName, Me)
Set Pcd = Nothing
If LoadPictureFromFile = False Then
Set Fit = New FitParser
LoadPictureFromFile = Fit.LoadPictureFromFile(FileName, Me)
Set Fit = Nothing
If LoadPictureFromFile = False Then
Set Dcm = New DcmParser
LoadPictureFromFile = Dcm.LoadPictureFromFile(FileName, Me)
Set Dcm = Nothing
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
这样的话是个庞大的工作。
if (!hResource)
return false;
DWORD imageSize = ::SizeofResource(hInst, hResource);
if (!imageSize)
return false; const void* pResourceData = ::LockResource(::LoadResource(hInst, hResource));
if (!pResourceData)
return false; m_hBuffer = ::GlobalAlloc(GMEM_MOVEABLE, imageSize);
if (m_hBuffer)
{
void* pBuffer = ::GlobalLock(m_hBuffer);
if (pBuffer)
{
CopyMemory(pBuffer, pResourceData, imageSize); IStream* pStream = NULL;
if (::CreateStreamOnHGlobal(m_hBuffer, FALSE, &pStream) == S_OK)
{
m_pBitmap = Gdiplus::Bitmap::FromStream(pStream);
pStream->Release();
if (m_pBitmap)
{
if (m_pBitmap->GetLastStatus() == Gdiplus::Ok)
return true; delete m_pBitmap;
m_pBitmap = NULL;
}
}
::GlobalUnlock(m_hBuffer);
}
::GlobalFree(m_hBuffer);
m_hBuffer = NULL;
}