请问如何得到图片的大小?

shootingstars 2012-01-09 11:45:33
加精
各位大侠:
我现在有个需求,想从图片中获得该图片的大小(宽高),我仅仅想通过读取该图片的文件头来知道图片的大小。
想请教一下大家做过这方便的工作吗?或者网上是否有开源的代码?我现在主要是需要知道的图片类型比较多(JPG,_PNG, WMF, EMF, GIF, BMP, TIF),其中一些图片我已近通过分析文档格式做了,但是主要是类型太多,自己做出来担心遗漏什么东西。有没有什么代码整合了这个功能,能够直接给图片内容(文件、或者Buffer),就能够给出这个宽高的?
再次多谢大家。
...全文
6713 116 打赏 收藏 转发到动态 举报
写回复
用AI写文章
116 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyi771 2013-03-04
  • 打赏
  • 举报
回复
谢谢你的代码,我试了下有些Jpg仍然读不到。其它的都OK
wangjieest 2012-01-31
  • 打赏
  • 举报
回复
楼主貌似很多格式也没支持啊,,,icon,psd....
arameter 2012-01-30
  • 打赏
  • 举报
回复
要分析文件头或用mfc
副组长 2012-01-28
  • 打赏
  • 举报
回复
这个很简单。
先说BMP格式。如果是文件
CFile f;
f.Open(_T("文件名.bmp"),CFile::modeRead);
BITMAPFILEHEADER fhd;
BITMAPINFOHEADER ihd;
f.Read(&fhd,sizeof(BITMAPFILEHEADER));
f.Read(&ihd,sizeof(BITMAPINFOHEADER));
int width = ihd.biWidth;
int height = ihd.biHeight;
f.Close();
这时的width和height里面就已经得到了图像的宽和高了。
不是文件在内存时找到BITMAPINFOHEADER对象,里面两个成员上面写了。
其它所有格式在Windows里面最终都要用BITMAP处理的,这个BITMAPINFOHEADER对象总是有的。
scdxhjy 2012-01-28
  • 打赏
  • 举报
回复
坛子里潜伏的牛人很多啊,学习!
chinaxiaoe 2012-01-28
  • 打赏
  • 举报
回复
http://hzjl.wzinfo.net.cn/Databases/xiaoe.asp?xiaoa
hao603324 2012-01-25
  • 打赏
  • 举报
回复
支持,希望LZ早日完成造福大家
Defonds 2012-01-21
  • 打赏
  • 举报
回复
读一下
shootingstars 2012-01-18
  • 打赏
  • 举报
回复
结贴了,多谢大家。
再次贴一下代码位置
http://www.svnchina.com/svn/gpp/
(这个一个月后会失效)
希望对大家有用。
yuemingqianli 2012-01-16
  • 打赏
  • 举报
回复
用Cximage找到接口就行了
linxin0524 2012-01-16
  • 打赏
  • 举报
回复
专门的工具把
YUWANGQUDONG 2012-01-15
  • 打赏
  • 举报
回复
潜力贴留名.欲望祝福送上..
jgw424 2012-01-14
  • 打赏
  • 举报
回复
顶起,我在下面铺砖头。
shootingstars 2012-01-13
  • 打赏
  • 举报
回复
to liminlu0314:
Sorry,我开始下错代码了,我再研究一下这个东东看。
shootingstars 2012-01-13
  • 打赏
  • 举报
回复
to liminlu0314:
这个我下载了,它不会是python的吧。。。我这个需要嵌入式使用的,它没有python解析功能,即使有也有效率问题,我做这个主要是想效率快。。。

to libralibra,dizuo,hanxiao08250825,wangyaninglm,sichuanpb,qualcode:
大家都推荐了opencv,这个我也看过,但是它还是运用的各种开源库读取文件。当然每个库都有读取文件,并且分析文件头的功能,这种方式与CxImage其实差别不大。目前我已近参考了一些库做了个代码(http://www.svnchina.com/svn/gpp/),希望好用。

再次谢谢大家。
(还有上面这个SVN库仅仅能保留一个月,如果想下载,需要尽快8-) )
昊天82 2012-01-13
  • 打赏
  • 举报
回复
进来学习下,希望能有解决方法
破烂熊 2012-01-13
  • 打赏
  • 举报
回复
我只试过 bmp tga png 是可以的 其他没接触过
不过想要有个通用的 还跨平台 比较困难
Kaile 2012-01-13
  • 打赏
  • 举报
回复
CXImage
如果用在嵌入式场合,要移植
shiyunqiang 2012-01-13
  • 打赏
  • 举报
回复
CImage类可以试试。
破烂熊 2012-01-13
  • 打赏
  • 举报
回复
对于你的要求来说 其实只用
读到
fread(&tgaHeader, 18/* sizeof(TGAHEADER)*/, 1, pFile);
就可以了
加载更多回复(68)

19,469

社区成员

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

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