c++ 获取jepg图片的尺寸和像素
来源:互联网 发布:mac 远程控制其他电脑 编辑:程序博客网 时间:2024/05/18 01:12
最近在编写PDF的解析器,正好需要用的jepg的解码,顺便就写下了此文。
我参考:http://wenku.baidu.com/view/9c9d8ed333d4b14e85246813.html
这个文档里面介绍了jepg的大体格式,我的代码也是参照这个大体结构来完成的:
buffer:jpg文件的byte数据
length:文件长度
int Jpeg::GetSize(char * buffer,long length){if(!buffer)return -1;char * temp=buffer+length,*temp1=buffer;unsigned char ff,type=0xff;int m_ret=-1,m_pos=0,m_hpx=0,m_wpx=0,uits=0;if((unsigned char)*buffer++!=0xff||(unsigned char)*buffer++!=0xd8){printf("此非jepg图片\n");return -1;}while(temp>buffer&&type!=0xDA){do {ff=*buffer++;} while (ff!=0xff);do {type=*buffer++;} while (type==0xff);switch(type){case 0x00:case 0x01:case 0xD0:case 0xD1:case 0xD2:case 0xD3:case 0xD4:case 0xD5:case 0xD6:case 0xD7:break;case 0xC0://SOF0段temp1=buffer;m_pos=((*buffer++)&0xff)<<8;m_pos+=(*buffer++)&0xff;buffer++; //舍弃精度值height=((*buffer++)&0xff)<<8;height+=(*buffer++)&0xff;weidth=((*buffer++)&0xff)<<8;weidth+=(*buffer)&0xff;m_ret++;break;case 0xE0: //APP0段temp1=buffer;m_pos=((*buffer++)&0xff)<<8;m_pos+=(*buffer++)&0xff;buffer=buffer+7; //丢弃APP0标记(5bytes)以及主版本号(1bytes)及次版本号(1bytes)uits=(*buffer++)&0xff; //0: 无单位,units=1:点数/英寸,units=2:点数/厘米m_wpx=((*buffer++)&0xff)<<8;m_wpx+=(*buffer++)&0xff;m_hpx=((*buffer++)&0xff)<<8;m_hpx+=(*buffer++)&0xff;hpx=m_hpx*JepgSize(uits);wpx=m_wpx*JepgSize(uits);m_ret++;break;default:temp1=buffer;m_pos=((*buffer++)&0xff)<<8;m_pos+=(*buffer++)&0xff;break;}buffer=temp1+m_pos;}return m_ret;}
float inline JepgSize(int x) { return x!=2?1:2.56; }
- c++ 获取jepg图片的尺寸和像素
- ios 获取UIImage图片的像素尺寸
- iOS 获取屏幕分辨率 以及放大模式、高清模式区别 和 获取UIImage图片的像素尺寸
- 如何获取字符串的像素尺寸?
- 如何获取字符串的像素尺寸
- 如何获取字符串的像素尺寸?
- MFC--获取字符串的像素尺寸
- 获取图片的像素值
- 获取图片的像素值
- GetImageSize获取图片的尺寸
- 获取网络图片的尺寸
- js动态获取图片的宽度和高度像素值
- js 动态获取图片的宽度和高度像素值
- java获取图片的尺寸(高和宽)
- JS获取上传图片的尺寸和大小
- java获取图片的大小和尺寸(本地& 服务器)
- JS获取图片的原始尺寸和上传图片大小
- 关于图片的像素,dpi与实际尺寸的关系
- IPhone中获取文件各项属性方法
- 百度有啊css圆角方案
- 数据库乱码
- Young氏矩阵
- 谈谈高并发高负载大型网站的系统架构
- c++ 获取jepg图片的尺寸和像素
- 新博客开张了...
- 可左右平滑滚动的产品展示效果
- 线程中的条件变量的使用
- Android主题与样式
- EL表达式-自定义函数
- android中改变标题栏的背景色
- 提取ipa中的图片
- 判断文本框只能输入中文汉字的代码