JPEG图像的压缩与解压缩

JPEG图像的压缩与解压缩

ID:37846272

大小:42.50 KB

页数:12页

时间:2019-06-01

JPEG图像的压缩与解压缩_第1页
JPEG图像的压缩与解压缩_第2页
JPEG图像的压缩与解压缩_第3页
JPEG图像的压缩与解压缩_第4页
JPEG图像的压缩与解压缩_第5页
资源描述:

《JPEG图像的压缩与解压缩》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JPEG压缩操作过程1.为JPEG对象分配空间并初始化2.指定图像输出目标3.为压缩设定参数,包括图像大小,颜色空间4.开始压缩5.写入数据6.压缩完毕7.释放资源为JPEG对象分配空间并初始化压缩过程中使用的JPEG对象是一个jpeg_compress_struct的结构体。同时还需要定义一个用于错误处理的结构体对象,IJG中标准的错误结构体是jpeg_error_mgr。structjpeg_compress_structcinfo;structjpeg_error_mgrjerr;然后是将错误处理结构对象绑定在JP

2、EG对象上。cinfo.err=jpeg_std_error(&jerr);这个标准的错误处理结构将使程序在出现错误时调用exit()退出程序,如果不希望使用标准的错误处理方式,则可以通过自定义退出函数的方法自定义错误处理结构,详情见文章后面的专门章节。初始化cinfo结构。jpeg_create_compress(&cinfo);指定图像输出目标利用标准C中的文件指针传递要输出的jpg文件。FILE*outfile;if((outfile=fopen(filename,"wb"))==NULL){return0;}jp

3、eg_stdio_dest(&cinfo,outfile);为压缩设定参数在开始压缩数据之前需要为压缩指定几个参数和缺省参数。设定缺省参数之前需要指定的几个参数是:图像宽度cinfo.image_width,图像高度cinfo.image_height,图像的颜色通道数cinfo.input_components(比如RGB图像为3,灰度图为1),图像颜色空间cinfo.in_color_space(比如真彩色JCS_RGB,灰度图JCS_GRAYSCALE)。如:cinfo.image_width=800;cinfo.

4、image_height=600;cinfo.input_components=3;cinfo.in_color_space=JCS_RGB;//JCS_GRAYSCALE表示灰度图,JCS_RGB表示彩色图像然后是设定缺省设置jpeg_set_defaults(&cinfo);注意此处,在setdefault之前,必须设定in_color_space,因为某些缺省参数的设定需要正确的colorspace值。在此之后还可以对其他的一些参数进行设定。具体有哪些参数可以查询libjpeg.doc文档。比如最常用的一个参数就是

5、压缩比。jpeg_set_quality(&cinfo,quality,TRUE);quality是个0~100之间的整数,表示压缩比率。开始压缩根据设定的压缩参数进行图像压缩操作。jpeg_start_compress(&cinfo,TRUE);开始压缩过程后就不可以修改cinfo对象参数。写入数据row_stride=image_width*3;//假设用到的图示RGB真彩色三通道同上文介绍的解压缩操作中介绍的,要写入的数据是按照行写入的,数据像素按照scanline来存储,与读取数据的不同是使用jpeg_write

6、_scanlines。类似于解压缩操作中的cinfo.output_scanline

7、ht){//找到图像中的某一行,写入目标文件row_pointer=image_buffer[cinfo.next_scanline];(void)jpeg_write_scanlines(&cinfo,&row_pointer,1);}压缩完毕jpeg_finish_compress(&cinfo);释放资源fclose(outfile);jpeg_destroy_compress(&cinfo);退出程序如果不再需要JPEG对象,则使用jpeg_destroy_compress(&cinfo);或jpeg_destr

8、oy(&cinfo);而如果还希望继续使用JPEG对象,则可使用jpeg_abort_compress(&cinfo);或jpeg_abort(&cinfo);完整例程//变量定义structjpeg_compress_structcinfo;structjpeg_error_mgrjerr;FILE*outfile

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。