求如何获得jpg格式的图片的BMP数据

zkhraul 2009-04-11 07:15:33
求如何获得jpg格式的图片的BMP数据,我现在需要获得jpg的各个象素的RGB值,我以前在vc是用jpgelib库解码,想问问在mobile上还是只能这么做吗
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
MS_Frank 2009-04-14
  • 打赏
  • 举报
回复
以前我写的一段代码。

/*
* 下载并转换图像为标准位图格式
* 成功返回宽(低字节),高(高字节),失败返回0
*/
LONG ConvertImage(LPCTSTR lpstrImgUrl,HBITMAP *hBitmap)
{
CHttpRequest httpRequ;
if(!InitHttpRequest(&httpRequ))return FALSE;

//下载图片
if(!httpRequ.OpenConnect(lpstrImgUrl,CHttpRequest::RequestType::GET))return FALSE;
if(!httpRequ.SendRequest())return FALSE;

DWORD dwLen=0;
BYTE *byData=NULL;
if(!httpRequ.ReadData(NULL,&dwLen))return FALSE;
byData=new BYTE[dwLen];
if(!httpRequ.ReadData(byData,&dwLen)) goto End;

///解码图像
LONG lRetn=0;
IImage *pImage=NULL;
IImagingFactory *pImagingFactory=NULL;
HRESULT hrCoInit;
HDC hdcCont=NULL,hdcMem=NULL;

if (FAILED(hrCoInit=CoInitializeEx(NULL, COINIT_MULTITHREADED)))goto End;
if(FAILED(CoCreateInstance(CLSID_ImagingFactory,NULL,CLSCTX_INPROC_SERVER,IID_IImagingFactory,(void**) &pImagingFactory)))goto End;
if(FAILED(pImagingFactory->CreateImageFromBuffer(byData,dwLen,BufferDisposalFlag::BufferDisposalFlagCoTaskMemFree,&pImage)))goto End;

ImageInfo imgInfo;
if(FAILED(pImage->GetImageInfo(&imgInfo)))goto End;

//将解码后的图像画入内存DC中
hdcCont=GetDC(NULL);
*hBitmap=CreateCompatibleBitmap(hdcCont,imgInfo.Width,imgInfo.Height);
hdcMem=CreateCompatibleDC(hdcCont);
SelectObject(hdcMem,*hBitmap);
RECT rect={0,0,imgInfo.Width,imgInfo.Height};
pImage->Draw(hdcMem,&rect,NULL);

//返回位置的宽,高
lRetn=MAKELONG(imgInfo.Width,imgInfo.Height);

End:
if(hdcMem)DeleteDC(hdcMem);
if(hdcCont)DeleteDC(hdcCont);
if(pImage)pImage->Release();
if(pImagingFactory)pImagingFactory->Release();
if(byData)delete[] byData;
if(SUCCEEDED(hrCoInit))CoUninitialize();

return lRetn;
}
儿大不由爷 2009-04-12
  • 打赏
  • 举报
回复
HBITMAP SHLoadImageFile (
LPCTSTR pszFileName
);
世外涛缘 2009-04-12
  • 打赏
  • 举报
回复
楼主既然解决了,能不能详细说明下呢?
学习。
zkhraul 2009-04-12
  • 打赏
  • 举报
回复
这种方法不行,下午用imaging转换下得到了bmp数据

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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