社区
其它技术问题
帖子详情
哪里有JPG文件的格式?C++要读写的.
门吹西风
2013-04-19 10:15:47
哪里有JPG文件的格式?C++要读写的.
...全文
344
8
打赏
收藏
哪里有JPG文件的格式?C++要读写的.
哪里有JPG文件的格式?C++要读写的.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
boyaxiong
2013-08-08
打赏
举报
回复
哪里有TIF文件的格式
boyaxiong
2013-08-08
打赏
举报
回复
TIFF文件的交换标准格式是什么呢?
辰岡墨竹
2013-04-20
打赏
举报
回复
如果没有特别需要,可以直接用GDI+读取或者IPicture接口,如果要控制写入建议用libjpeg,很多时候你想读一个文件,不要去想着自己去实现格式读取,应该找现成的库,效率肯定高,而且更稳定。
JinCraft
2013-04-20
打赏
举报
回复
推荐使用FreeImage库读写jpg,这个库轻便就一个.h文件,一个.lib,一个.dll文件。使用也超级简单。 如果亲自手写读取jpg文件,那估计你得对jpg的压缩算法非常熟悉了。 读写bmp文件比较简单,因为bmp基本都没有使用压缩算法。
赵4老师
2013-04-20
打赏
举报
回复
要学会站在巨人肩膀上。
青松2
2013-04-19
打赏
举报
回复
JFIF文件格式直接使用JPEG标准爲应用程式定义的许多标记,因此JFIF格式成了事实上JPEG文件交换格式标准。JPEG的每个标记都是由2个位元组组成,其前一个位元组是固定值0xFF。每个标记之前还可以添加数目不限的0xFF填充位元组(fill byte)。下面是其中的8个标记: 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 图像结束 爲使读者对JPEG定义的标记一目了然,现将JPEG的标记码列於表6-05,并保留英文解释。 表6-05 JPEG定义的标记 Symbol (符号) Code Assignment (标记代码) Deforbiddenion (说明) Start Of Frame markers, non-hierarchical Huffman coding SOF0 0xFFC0 Baseline DCT SOF1 0xFFC1 Extended sequential DCT SOF2 0xFFC2 Progressive DCT SOF3 0xFFC3 Spatial (sequential) lossless Start Of Frame markers, hierarchical Huffman coding SOF5 0xFFC5 Differential sequential DCT SOF6 0xFFC6 Differential progressive DCT SOF7 0xFFC7 Differential spatial lossless Start Of Frame markers, non-hierarchical arithmetic coding JPG 0xFFC8 Reserved for JPEG extensions SOF9 0xFFC9 Extended sequential DCT SOF10 0xFFCA Progressive DCT SOF11 0xFFCB Spatial (sequential) Lossless Start Of Frame markers, hierarchical arithmetic coding SOF13 0xFFCD Differential sequential DCT SOF14 0xFFCE Differential progressive DCT SOF15 0xFFCF Differential spatial Lossless Huffman table specification DHT 0xFFC4 Define Huffman table(s) arithmetic coding conditioning specification DAC 0xFFCC Define arithmetic conditioning table Restart interval termination RSTm 0xFFD0~0xFFD7 Restart with modulo 8 counter m Other marker SOI 0xFFD8 Start of image EOI 0xFFD9 End of image SOS 0xFFDA Start of scan DQT 0xFFDB Define quantization table(s) DNL 0xFFDC Define number of lines DRI 0xFFDD Define restart interval DHP 0xFFDE Define hierarchical progression EXP 0xFFDF Expand reference image(s) APPn 0xFFE0~0xFFEF Reserved for application use JPGn 0xFFF0~0xFFFD Reserved for JPEG extension COM 0xFFFE Comment Reserved markers TEM 0xFF01 For temporary use in arithmetic coding RES 0xFF02~0xFFBF Reserved JPEG文件由下面的8个部分组成: (1) 图像开始SOI(Start of Image)标记 (2) APP0标记(Marker) ① APP0长度(length) ② 识别字(identifier) ③ 版本号(version) ④ X和Y的密度单位(units=0:无单位;units=1:点数/英寸;units=2:点数/厘米) ⑤ X方向图元密度(X density) ⑥ Y方向图元密度(Y density) ⑦ 缩略图水平图元数目(thumbnail horizontal pixels) ⑧ 缩略图垂直图元数目(thumbnail vertical pixels) ⑨ 缩略图RGB点阵图(thumbnail RGB bitmap) (3) APPn标记(Markers),其中n=1~15(任选) ① APPn长度(length) ② 由於详细资讯(application specific information) (4) 一个或者多个量化表DQT(difine quantization table) ① 量化表长度(quantization table length) ② 量化表数目(quantization table number) ③ 量化表(quantization table) (5) 帧图像开始SOF0(Start of Frame) ① 帧开始长度(start of frame length) ② 精度(precision),每个顔色分量每个图元的位元数(bits per pixel per color component) ③ 图像高度(image height) ④ 图像宽度(image width) ⑤ 顔色分量数(number of color components) ⑥ 对每个顔色分量(for each component) o ID o 垂直方向的样本因数(vertical sample factor) o 水平方向的样本因数(horizontal sample factor) o 量化表号(quantization table#) (6) 一个或者多个霍夫曼表DHT(Difine Huffman Table) ① 霍夫曼表的长度(Huffman table length) ② 类型、AC或者DC(Type, AC or DC) ③ 索引(Index) ④ 位表(bits table) ⑤ 值表(value table) (7) 扫描开始SOS(Start of Scan) ① 扫描开始长度(start of scan length) ② 顔色分量数(number of color components) ③ 每个顔色分量 o ID o 交流系数表号(AC table #) o 直流系数表号(DC table #) ④ 压缩图像资料(compressed image data) (8) 图像结束EOI(End of Image) 表6-06表示了APP0域的详细结构。有兴趣的读者可通过UltraEdit或者PC TOOLS等工具软体打开一个JPG图像文件,对APP0的结构进行分析和验证。 表6-06 JFIF格式中APP0域的详细结构 偏移 长度 内容 块的名称 说明 0 2 byte 0xFFD8 (Start of Image,SOI) 图像开始 2 2 byte 0xFFE0 APP0(JFIF application segment) JFIF应用资料块 4 2 bytes length of APP0 block APP0块的长度 6 5 bytes "JFIF"+"0" 识别APP0标记 11 1 byte 主要版本号(如版本1.02中的1) 12 1 byte 次要版本号(如版本1.02中的02) 13 1 byte and Y densities> X和Y的密度单位 units=0:无单位 units=1:点数/英寸 units=2:点数/厘米 14 2 bytes 水平方向图元密度 16 2 bytes 垂直方向图元密度 18 1 byte 缩略图水平图元数目 19 1 byte 缩略图垂直图元数目 3n < Thumbnail RGB bitmap> 缩略RGB点阵图(n爲缩略图的图元数) Optional JFIF extension APP0 marker segment(s) 任选的JFIF扩展APP0标记段 …… …… 2 byte 0xFFD9 (EOI) end-of-file 图像文件结束标记 ////////////////////////////////////////////////////
nirvana_newbie
2013-04-19
打赏
举报
回复
没看懂楼主问的问题
c++
读写
BMP
JPG
和png 的图像
文件
(linux)
本程序借助libpng和libjpeg库 ,以
C++
类的方式实现linux下对png
jpg
和bmp常见类型的图像
文件
的
读写
。要在程序中显示图像可自行用opengl或其他方式完成。
JPG
.rar_
c++
jpg
_
c++
读写
jpg
_
jpg
_
jpg
读
jpg
图像
文件
的
读写
,内存实时创建.
jpg
图像
文件
的
读写
,内存实时创建.
征服
C++
11视频精讲
【为什么还需要学习
C++
?】 你是否接触很多语言,但从来没有了解过编程语言的本质?... 提升篇: 本篇可以帮助学员更加高效的进行
c++
开发,其中包含类型转换、
文件
操作、异常处理、代码重用等内容。
C++
的JPEG
读写
库
一个JPEG的封装库,提供一个
C++
类,用于获得JPEG
文件
中的位图数据
JPEG的Exif信息
读写
的C语言实现(以
文件
或者缓存形式向
JPG
图片读和写操作,并有案例)
文件
其中包含 -------------1.将缓冲区数据添加到JPEG图片中 -------------2.将JPEG图片X数据提取到缓冲区中 -------------3.将
文件
里的数据添加到JPEG图片中 -------------4.将JPEG图片X数据提取出来,生成新的数据...
其它技术问题
3,881
社区成员
9,054
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章