欢迎来到天天文库
浏览记录
ID:29854489
大小:24.65 KB
页数:29页
时间:2018-12-24
《libjpeg,库使用心得》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划libjpeg,库使用心得 通过简单修改libjpeg源代码,实现内存内位图的压缩及解压缩【转】XX-08-1216:19 转载http:///logs/ 相信使用过的朋友应该会喜欢上libjpeg,它简单易用、压缩质量可以随意控制、并且稳定性很好,但是,官方网站给提供的libjpeg库, 不论是进行压缩时还是解压缩时,都需要用到FILE,使得我们如果想在内存中直接压缩或解压缩图像还要自己实现相应的结构, 总之,比较麻烦,尤其对初学
2、者,更是不知从何处入手,幸运的是,libjpeg给我们提供了源代码,今天我就为大家介绍,怎样修改源代码, 使libjpeg可以非常容易的直接处理内存中的图像,而无需借助文件操作。 一、建立自己的libjpeg工程 为了修改后编译方便,也为了以后在VC环境下容易使用libjpeg库,我们按以下步骤将libjpeg转换为VC环境下的工程。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技
3、能及个人素质的培训计划 1、在VC环境下重新建立一个空的staticlibrary工程,工程名为libjpeg,此处注意,新建工程不要包含mfc,不要预编译头文件; 2、然后将libjpeg下的 等文件拷贝到新工程的文件夹下,并将.c文件改名为.cpp; 3、将所有的源文件及头文件添加到新建的工程中; 4、编译新工程,此时就可以生成了。 二、分析并修改源代码 我们知道,libjpeg是利用FILE进行存取图像数据的,接下来,我们就要分析一下libjpeg是怎样利用FILE进行存取图像数据的, 然后我们用内存拷贝的方式替换
4、掉所有的文件操作,也就实现了内存中进行图像压缩和解压缩的目标。 下面,先分析压缩图像时libjpeg是怎样利用FILE进行存储数据的。我们先看在进行图像压缩时,我们所调用的跟文件有关系的函数: jpeg_stdio_dest(j_compres_ptrcinfo,FILE*outfile); 我们找到这个函数的源代码: 1GLOBAL(void)目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从
5、业人员的业务技能及个人素质的培训计划 2jpeg_stdio_dest(j_compress_ptrcinfo,FILE*outfile) 3{ 4my_dest_ptrdest; 5/*ThedestinationobjectismadepermanentsothatmultipleJPEGimages6*canbewrittentothesamefilewithoutre-executingjpeg_stdio_dest. 7*Thismakesitdangeroustousethismanagerandadifferentdestina
6、tion8*managerseriallywiththesameJPEGobject,becausetheirprivateobject9*sizesmaybedifferent.Caveatprogrammer. 10*/ 11if(cinfo->dest==NULL){/*firsttimeforthisJPEGobject?*/ 12cinfo->dest=(structjpeg_destination_mgr*) 13(*cinfo->mem->alloc_small)((j_common_ptr)cinfo,JPOOL_PERMANE
7、NT, 14SIZEOF(my_destination_mgr));目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 15} 16dest=(my_dest_ptr)cinfo->dest; 17dest->_destination=init_destination; 18dest->_output_buffer=empty_output_buffer;
8、 19dest->_destination=term_destination; 20dest
此文档下载收益归作者所有