您的位置:程序门 -> vc/mfc -> 图形处理/算法



jpg图像的显示问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


jpg图像的显示问题[已结贴,结贴人:plqin]
发表于:2007-06-16 16:43:57 楼主
我已经完成了单幅图像的保存。
fp=fopen( "c:\1.jpg ", "w ");
fwrite(pframe,picsize,1,fp);
其中,pframe是保存图像数据的数组,picsize是图像的大小。现在想把图像显示出来,那位高人能指点下啊?
这里先谢谢了
发表于:2007-06-16 16:47:301楼 得分:65
在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();
发表于:2007-06-16 19:48:242楼 得分:0

十分感谢大哥。谢谢。对我真是太有用了。
不过,我把图像保存只不过是想验证下我传输的视频流的效果。如果不保存图像而是直接从保存图像数据的数组pframe中读该怎么做相应修改啊?
发表于:2007-06-16 20:55:283楼 得分:5
pframe本身是什么格式?
发表于:2007-06-17 09:31:324楼 得分:0
是   unsigned     char   *pframe呢保存的是视频图像数据
发表于:2007-06-20 09:23:225楼 得分:0
怎么每人回了啊?现在还不想结贴呢,那位大哥再指点小弟下呢
发表于:2007-06-20 14:59:366楼 得分:5
先用画笔看看保存的文件是否正确.显示jpeg有很多包装类都可以做到
发表于:2007-06-20 15:39:037楼 得分:5
如果保存只是为了下次显示图片,可以保存ppicture指针
发表于:2007-06-24 13:39:308楼 得分:0
现在麻烦了
原先保存的是在linux下,原以为在windows下效果应该也一样,
但是在windows保存的图像什么也看不到的。郁闷。
那位高人能指点下啊?图像数据是通过udp从装有linux系统的视频服务器发过来的,保存在数组中呢
fp=fopen( "c:\1.jpg ", "w ");
fwrite(pframe,picsize,1,fp);
其中,pframe是保存图像数据的数组,picsize是图像的大小
但是什么也看不到的


快速检索

最新资讯
热门点击