读取JPEG和GIF图像的简单方法
2006-11-26 02:18
387 查看
读取JPEG和GIF图像的简单方法
CString strName; // 文件名
HDC hDC; // 绘图句柄
// 打开文件
HANDLE hFile;
if( ( hFile = ::CreateFile( strName ,true ) ), GENERIC_READ, FILE_SHARE_READ
, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN, NULL
) ) != INVALID_HANDLE_VALUE )
...{
// 创建文件流
DWORD dwSize = DWORD( ::GetFileSize( hFile, NULL ) );
ASSERT( dwSize != -1 );
HGLOBAL hMemory = ::GlobalAlloc( GMEM_MOVEABLE, dwSize );
ASSERT( hMemory != NULL );
LPVOID pData = ::GlobalLock( hMemory );
ASSERT( pData != NULL );
DWORD dwCount;
::ReadFile( hFile, pData, dwSize, &dwCount, NULL );
::GlobalUnlock( hMemory );
IStream * pStream = NULL;
::CreateStreamOnHGlobal( hMemory, TRUE, &pStream );
ASSERT( pStream != NULL );
// 从流中装入图片
IPicture * pPicture = NULL;
if( SUCCEEDED( ::OleLoadPicture( pStream, dwSize, TRUE, IID_IPicture,( LPVO
ID* )&pPicture ) ) )
...{
// 向DC中绘图
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
pPicture->get_Width( &hmWidth );
pPicture->get_Height( &hmHeight );
pPicture->Render( hDC, 0, 0, 300, 300, 0, hmHeight, hmWidth, -hmHeight, NU
LL );
pPicture->Release();
}
// 释放流和文件
pStream->Release();
::CloseHandle( hFile );
}
kind_li的专栏:显示JPG和GIF图片的简单方法
http://blog.csdn.net/kind_li/archive/2002/11/28/10987.aspx
CString strName; // 文件名
HDC hDC; // 绘图句柄
// 打开文件
HANDLE hFile;
if( ( hFile = ::CreateFile( strName ,true ) ), GENERIC_READ, FILE_SHARE_READ
, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN, NULL
) ) != INVALID_HANDLE_VALUE )
...{
// 创建文件流
DWORD dwSize = DWORD( ::GetFileSize( hFile, NULL ) );
ASSERT( dwSize != -1 );
HGLOBAL hMemory = ::GlobalAlloc( GMEM_MOVEABLE, dwSize );
ASSERT( hMemory != NULL );
LPVOID pData = ::GlobalLock( hMemory );
ASSERT( pData != NULL );
DWORD dwCount;
::ReadFile( hFile, pData, dwSize, &dwCount, NULL );
::GlobalUnlock( hMemory );
IStream * pStream = NULL;
::CreateStreamOnHGlobal( hMemory, TRUE, &pStream );
ASSERT( pStream != NULL );
// 从流中装入图片
IPicture * pPicture = NULL;
if( SUCCEEDED( ::OleLoadPicture( pStream, dwSize, TRUE, IID_IPicture,( LPVO
ID* )&pPicture ) ) )
...{
// 向DC中绘图
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
pPicture->get_Width( &hmWidth );
pPicture->get_Height( &hmHeight );
pPicture->Render( hDC, 0, 0, 300, 300, 0, hmHeight, hmWidth, -hmHeight, NU
LL );
pPicture->Release();
}
// 释放流和文件
pStream->Release();
::CloseHandle( hFile );
}
kind_li的专栏:显示JPG和GIF图片的简单方法
http://blog.csdn.net/kind_li/archive/2002/11/28/10987.aspx
相关文章推荐
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- vc显示jpg,gif图像简单方法
- 在Wpf中使用动态GIF图像的简单方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在Visual C++ 6.0下显示JPEG、GIF等格式标准的图像的一种实现起来比较简便的方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- 在VC上实现如何从内存中读取JPEG、GIF等图像
- vc显示jpg,gif图像简单方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- VC 下加载 JPG / JPEG / GIF / PNG 图片最简单的方法
- VC 下加载 JPGJPEGGIFPNG 图片最简单的方法
- 在VC下显示JPEG、GIF格式图像的一种简便方法
- vc显示jpg,gif图像简单方法
- VC 下加载 JPG / JPEG / GIF / PNG 图片最简单的方法
- VC下加载JPG,JPEG,GIF,PNG图片最简单的方法