jpg图像的显示问题

plqin 2007-06-16 04:43:57
我已经完成了单幅图像的保存。
fp=fopen("c:\1.jpg","w");
fwrite(pframe,picsize,1,fp);
其中,pframe是保存图像数据的数组,picsize是图像的大小。现在想把图像显示出来,那位高人能指点下啊?
这里先谢谢了
...全文
310 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
plqin 2007-06-24
  • 打赏
  • 举报
回复
现在麻烦了
原先保存的是在LINUX下,原以为在windows下效果应该也一样,
但是在windows保存的图像什么也看不到的。郁闷。
那位高人能指点下啊?图像数据是通过UDP从装有LINUX系统的视频服务器发过来的,保存在数组中呢
fp=fopen("c:\1.jpg","w");
fwrite(pframe,picsize,1,fp);
其中,pframe是保存图像数据的数组,picsize是图像的大小
但是什么也看不到的
plqin 2007-06-20
  • 打赏
  • 举报
回复
怎么每人回了啊?现在还不想结贴呢,那位大哥再指点小弟下呢
mudunke775 2007-06-20
  • 打赏
  • 举报
回复
如果保存只是为了下次显示图片,可以保存pPicture指针
xdljf 2007-06-20
  • 打赏
  • 举报
回复
先用画笔看看保存的文件是否正确.显示JPEG有很多包装类都可以做到
plqin 2007-06-17
  • 打赏
  • 举报
回复
是 unsigned char *pframe呢保存的是视频图像数据
DentistryDoctor 2007-06-16
  • 打赏
  • 举报
回复
pframe本身是什么格式?
plqin 2007-06-16
  • 打赏
  • 举报
回复

十分感谢大哥。谢谢。对我真是太有用了。
不过,我把图像保存只不过是想验证下我传输的视频流的效果。如果不保存图像而是直接从保存图像数据的数组pframe中读该怎么做相应修改啊?
yxz_lp 2007-06-16
  • 打赏
  • 举报
回复
在OnDraw 函数中调用如下代码:


::CoInitialize(NULL); // COM 初始化
HRESULT hr;
CFile file;

file.Open( TEXT("c:\\1.jpg"), CFile::modeRead | CFile::shareDenyNone ); // 读入文件内容
DWORD dwSize = file.GetLength();
HGLOBAL hMem = ::GlobalAlloc( GMEM_MOVEABLE, dwSize );
LPVOID lpBuf = ::GlobalLock( hMem );
file.Read( lpBuf, dwSize );
file.Close();
::GlobalUnlock( hMem );

IStream * pStream = NULL;
IPicture * pPicture = NULL;

// 由 HGLOBAL 得到 IStream,参数 TRUE 表示释放 IStream 的同时,释放内存
hr = ::CreateStreamOnHGlobal( hMem, TRUE, &pStream );
ASSERT ( SUCCEEDED(hr) );

hr = ::OleLoadPicture( pStream, dwSize, TRUE, IID_IPicture, ( LPVOID * )&pPicture );
ASSERT(hr==S_OK);

long nWidth,nHeight; // 宽高,MM_HIMETRIC 模式,单位是0.01毫米
pPicture->get_Width( &nWidth ); // 宽
pPicture->get_Height( &nHeight ); // 高

////////原大显示//////
//CSize sz( nWidth, nHeight );
//pDC->HIMETRICtoDP( &sz ); // 转换 MM_HIMETRIC 模式单位为 MM_TEXT 像素单位
//pPicture->Render(pDC->m_hDC,0,0,sz.cx,sz.cy,
// 0,nHeight,nWidth,-nHeight,NULL);

////////按窗口尺寸显示////////
CRect rect; GetClientRect(&rect);
pPicture->Render(pDC->m_hDC,0,0,rect.Width(),rect.Height(),
0,nHeight,nWidth,-nHeight,NULL);

if ( pPicture ) pPicture->Release();// 释放 IPicture 指针
if ( pStream ) pStream->Release(); // 释放 IStream 指针,同时释放了 hMem

::CoUninitialize();

19,468

社区成员

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

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