jpg转bmp的问题

dashenhaoyi 2007-02-27 07:28:31
我在网上找到一段能有效把jpg转到bmp的代码,但它读的是文件
我把jpg文件加入资源,请问应如何修改,使其处理jpg资源?
代码如下:

HBITMAP ImageLoad(LPCTSTR szFile, HBITMAP hRet)
{
LPPICTURE gpPicture;
HANDLE hFile = ::CreateFile(szFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
if(INVALID_HANDLE_VALUE == hFile)
return false;
DWORD dwFileSize = ::GetFileSize(hFile, NULL);
ASSERT(-1 != dwFileSize);
LPVOID pvData = NULL;
HGLOBAL hGlobal = ::GlobalAlloc(GMEM_MOVEABLE, dwFileSize);
ASSERT(NULL != hGlobal);
pvData = ::GlobalLock(hGlobal);
ASSERT(NULL != pvData);
DWORD dwBytesRead = 0;
BOOL bRead = ::ReadFile(hFile, pvData, dwFileSize, &dwBytesRead, NULL);
ASSERT(FALSE != bRead);
::GlobalUnlock(hGlobal);
::CloseHandle(hFile);
LPSTREAM pstm = NULL;
HRESULT hr = ::CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);
ASSERT(SUCCEEDED(hr) && pstm);
hr=::OleLoadPicture(pstm, dwFileSize, FALSE, IID_IPicture, (LPVOID *)&gpPicture);
ASSERT(SUCCEEDED(hr) && gpPicture);
pstm->Release();
OLE_HANDLE picHandle;
gpPicture->get_Handle(&picHandle);
HDC hdc = ::CreateCompatibleDC(NULL);
ASSERT(hdc);
::SelectObject(hdc, (HGDIOBJ) picHandle);
hRet = (HBITMAP)::GetCurrentObject(hdc, OBJ_BITMAP);
DeleteDC(hdc);
return hRet;
}
...全文
338 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2007-07-17
  • 打赏
  • 举报
回复
CxImage
vocool 2007-07-17
  • 打赏
  • 举报
回复
需要jpg->bmp的源码 recool@sina.com,谢谢!
xfrunning 2007-07-17
  • 打赏
  • 举报
回复
其实你可以用GDI+来做,我自己做过一个图片格式转换系统,可以将图片的格式任意转换,用GID+做起来方便,并且相当简单。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧