显示JPG图像和转为BMP的问题

lili0920 2010-04-15 05:49:34
有一副JPG的图像,没有JPG的JFIF头的信息,怎么做才能将这个显示出来,还有怎么转为BMP. CXIMAGE可以实现,但是想在内存中直接显示和转为BMP怎么实现。谢
...全文
230 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
尹成 2010-04-20
  • 打赏
  • 举报
回复
CBitmap bitmapTemp, *pOldBitmap;
CDC* pDC = GetDC();
CDC* pMemDC = new CDC;

bitmapTemp.CreateCompatibleBitmap(pDC, nWidth, nHight);//你图片的长宽
pMemDC->CreateCompatibleDC(pDC);
pOldBitmap = pMemDC->SelectObject(&bitmapTemp);
//在pMemDC上绘制图片,bitmapTemp就是你要的位图
pMemDC->SelectObject(pOldBitmap);
//释放内存
ReleaseDC(pMemDC);
delete pMemDC;

应该是指针泄露
lili0920 2010-04-20
  • 打赏
  • 举报
回复
OleLoadPicture 返回0x80004005
lili0920 2010-04-16
  • 打赏
  • 举报
回复
JPG数据怎么才能得到CBitmap
lili0920 2010-04-16
  • 打赏
  • 举报
回复
	using namespace Gdiplus;
IStream* pStmBmp = NULL;
Image* imImage = NULL;
BYTE* pbyBmp = NULL;
Status stat;
CLSID clImageClsid;
HGLOBAL hMemImage = NULL;

IStream* pStmImage = NULL;
LARGE_INTEGER liBegin = {0};

HGLOBAL hMemBmp = NULL;

DWORD dwBMPDataSize = 0;
BYTE* pbyImage = 0;

BITMAPFILEHEADER bmi;
BITMAPINFOHEADER bfl;

DWORD dwHeadSize = 0;

LPBYTE pDIBBmpData = NULL;

HBITMAP hRet = NULL;

hMemBmp = GlobalAlloc(GMEM_FIXED, nLen);
if (NULL == hMemBmp)
goto Error;

if (S_OK != CreateStreamOnHGlobal(hMemBmp,FALSE,&pStmBmp))
goto Error;

pbyBmp = (BYTE*)GlobalLock(hMemBmp);
if (NULL == pbyBmp)
goto Error;

memcpy(pbyBmp,pbyMem,nLen);

imImage = Gdiplus::Image::FromStream(pStmBmp, FALSE);


pbyMem是JPG的数据,然后imImage返回为NULL,不知道这个是什么原因?
向立天 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lili0920 的回复:]
我对JPEG的格式不是很理解,网上JPEG的资料也不多,只是没有前面的JFIF的部分,大小的部分还是有的,不知道JFIF这部分有什么用处。。。。
[/Quote]


我说的么
别管JFIF是什么只要能能显示出来就可以关联内存问题达到你说的转化的目的
以下代码给你参考一下

CBitmap bitmapTemp, *pOldBitmap;
CDC* pDC = GetDC();
CDC* pMemDC = new CDC;

bitmapTemp.CreateCompatibleBitmap(pDC, nWidth, nHight);//你图片的长宽
pMemDC->CreateCompatibleDC(pDC);
pOldBitmap = pMemDC->SelectObject(&bitmapTemp);
//在pMemDC上绘制图片,bitmapTemp就是你要的位图
pMemDC->SelectObject(pOldBitmap);
//释放内存
ReleaseDC(pMemDC);
delete pMemDC;
zhangxin357 2010-04-16
  • 打赏
  • 举报
回复
转化成数据流,从内存中读取数据用Render函数画出来
社会栋梁 2010-04-16
  • 打赏
  • 举报
回复
怎么个没有头信息法?
是被去掉了?
lili0920 2010-04-16
  • 打赏
  • 举报
回复
我对JPEG的格式不是很理解,网上JPEG的资料也不多,只是没有前面的JFIF的部分,大小的部分还是有的,不知道JFIF这部分有什么用处。。。。
向立天 2010-04-16
  • 打赏
  • 举报
回复
CXIMAGE可以将没有文件头的裸JPG数据显示出来么?
lili0920 2010-04-16
  • 打赏
  • 举报
回复
怎么讲?还能讲下思路,用GDI+里面的FromStream返回的为空
Eleven 2010-04-15
  • 打赏
  • 举报
回复
这样很清楚BMP的格式
lili0920 2010-04-15
  • 打赏
  • 举报
回复
自己顶

15,979

社区成员

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

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