以后都要悬梁刺骨,发奋图强了.

记载自己的学习,工作,成长,感悟.

#if 1
          char buff_filename[FILE_LEN];
          FILE *fp;
          U16 file_length=0,i=0;
          sprintf(buff_filename,"/mnt/part1/%s",player_fileinfo.file_name);
          fp=fopen(buff_filename,"rb");
          fseek(fp,0L,SEEK_END);
          file_length=ftell(fp);
          fseek(fp,0L,SEEK_SET);
          if(fp!=NULL)
          {
           U8 markID=0;
           for(i=0;i<file_length;i++)
           {
            fseek(fp,i,SEEK_SET);
            fread(&markID,1,1,fp);
            if(markID==0xFF)
            {
             fseek(fp,i+1,SEEK_SET);
             fread(&markID,1,1,fp);
             if(markID==0xc0)
             {
              printf("current_position=%dbytes/n",ftell(fp));
              U16 buff,width,heigth;
              fseek(fp,i+1+4,SEEK_SET);
              fread(&buff,2,1,fp);
              heigth=(buff<<8)|(buff>>8);
              fseek(fp,i+1+6,SEEK_SET);
              fread(&buff,2,1,fp);
              width=(buff<<8)|(buff>>8);
              printf("width=%d,heigth=%d/n",width,heigth);
              break;
             }
            }
           }
          }
          fclose(fp);
          #endif

JPG图片文件头解析图片的宽高........

8个段,每个段的最大长度为65535,但一般都不固定也没有到最大长度:

  1. SOI  0xD8            图像开始
  2. APP0 0xE0            JFIF应用数据块
  3. APPn 0xE1 - 0xEF    其他的应用数据块(n, 1~15)
  4. DQT  0xDB           量化表
  5. SOF0 0xC0            帧开始
  6. DHT  0xC4           霍夫曼(Huffman)表
  7. SOS  0xDA           扫描线开始
  8. EOI  0xD9            图像结束

解析图片的时候,一般都先找到以上段的标志,紧接着标志的是该段的长度,两个字节..

图片宽高在SOF0段,先找0xFFC0标志,再偏移三个字节就到高度的位置,为两个字节,且为低字节在前,处理一下就得到JPG图片的高度.

图片的宽度紧接着高度为两个字节,处理同上.

JPG图片的高宽解析.相关推荐

  1. php根据图片地址获取图片原始高宽,Js获取图片原始宽高的实现代码

    如果我们页面看到的图片都是缩略图,那就需要做个图片点击放大效果,那么怎样获取图片的原始宽高呢?方法如下: //获取图片原始宽度 function getNaturalWidthAndHeight(im ...

  2. 使用纯CSS实现未知尺寸的图片(但高宽都小于500px)在500px的正方形容器中水平和垂直居中。你有几种方法?

    解决这个问题有多种方法 1.使用css hack 处理ie6下的问题. 2.嵌入其它标签使其垂直居中. 方法一: .box {             /*非IE的主流浏览器识别的垂直居中的方法*/ ...

  3. android 通过图片url获取宽高_通过 URL 获取图片宽高优化

    一张小图.png 前言 客户端研发时,有时会有这样的需求,需要根据图片链接地址获取图片的宽高来进行界面排版. 一般比较正规的做法,是服务端在返回数据时将图片的信息属性一起带回来,这也符合轻客户端设计规 ...

  4. 让图片算好高宽再显示

    var ctn = document.getElementById('img'); var imgO = new Image(); imgO.onload = function(){if(imgO.w ...

  5. 百度ueditor自适应(编辑器自适应页面,图片上传宽高,等)

    1.编辑器自适应页面 在实例化编辑器时加上 initialFrameWidth:'100%',//初始化编辑器宽度 代码 <!-- 加载编辑器的容器 --> <script id=& ...

  6. [转]图片格式WEBP全面解析

    前言 不管是 PC 还是移动端,图片一直是流量大头,以苹果公司 Retina 产品为代表的高 PPI 屏对图片的质量提出了更高的要求,如何保证在图片的精细度不降低的前提下缩小图片体积,成为了一个有价值 ...

  7. java图像处理002---JAVA图片压缩_图片缩放_图片按照比例缩放_图片指定长宽缩放_Java使用google开源工具Thumbnailator实现图片压缩

    JAVA技术交流QQ群:170933152 前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高 ...

  8. 名编辑电子杂志大师教程 | 设置电子杂志的高宽比例

    这里设置的高宽比例,填的只是比例,打个比方,高2宽3,与高20宽30是一样的效果. 1.在名编辑电子杂志大师软件界面左边的"设计设置"栏,搜索"书比例",然后点 ...

  9. 人工智能图片素材高清,机器人图片卡通 素材

    1.做一个人工智能的ppt需要哪些素材 不能理解你的问题.ppt仅仅是一个做幻灯的软件,可以插入图片.动画.音乐.过场等幻灯的功能,还谈不上有人工智能的能力.人工智能需要有更为强大的类似人脑思维的能力 ...

最新文章

  1. 图论 ---- C. Graph Transpositions(数据分阶段分层图最短路(二维) + 贪心)
  2. 在C#中利用DirectX实现声音播放(winForm)
  3. excel利用countif/match/lookup函数对比分析数据
  4. Mysql数据库 自动增长 重新从0开始
  5. 联系人排序java代码_Android仿微信联系人按字母排序
  6. 【bzoj2338】[HNOI2011]数矩形 计算几何
  7. MQ发送的消息都到了死信队列中了
  8. Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}
  9. 海康设备添加到萤石云
  10. 坐标正反算通用程序(极短篇)
  11. android视频处理之动态时间水印效果
  12. 用友服务器系统,用友软件 用友云服务器
  13. 中国联通cdma 1x和中国移动gprs数据业务比较
  14. 利用硬件机器人实现网络试衣
  15. 【Kotlin】Kotlin 教程
  16. Maxscale实现MySQL读写分离
  17. java socket同步_Java socket客户端与服务端同步通信实例
  18. 开源入侵检测系统OSSEC的搭建及使用
  19. Echarts在map地图上添加散点图
  20. 弘辽科技:老店新开没有自然流量怎么办?

热门文章

  1. mysql修改root密码 工具下载_学习mysql root密码修改的方法及工具使用
  2. C语言课程训练系统题-字符串cqupt
  3. 记普林斯顿大学教授李凯:从中国工人到美国院士
  4. 校园二手平台——微信小程序
  5. 值得拥有的微商城购物新模式----一元购
  6. 软件工程白盒测试的流图怎么画_【2017年整理】软件工程白盒测试.doc
  7. 黑苹果无线能用上蓝牙5.2及WIFI 6,还能同时支持隔空投送嘛?有完美方案嘛?
  8. 37条运营者必知的APP运营秘籍
  9. 安装Photoshop 2022时出现操作系统不满足此安装程序的最低系统要求
  10. Express 实战(四):中间件