电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

libjpeg实现内存内位图的压缩及解压缩VIP专享VIP免费

libjpeg实现内存内位图的压缩及解压缩_第1页
libjpeg实现内存内位图的压缩及解压缩_第2页
libjpeg实现内存内位图的压缩及解压缩_第3页
libjp eg 实现内存内位图的压缩及解压缩 相信使用过的朋友应该会喜欢上libjpeg,它简单易用、压缩质量可以随意控制、并且稳定性很好,但是,官方网站给提供的libjpeg 库, 不论是进行压缩时还是解压缩时,都需要用到 FILE,使得我们如果想在内存中直接压缩或解压缩图像还要自己实现相应的结构, 总之,比较麻烦,尤其对初学者,更是不知从何处入手,幸运的是,libjpeg 给我们提供了源代码,今天我就为大家介绍,怎样修改源代码, 使libjpeg 可以非常容易的直接处理内存中的图像,而无需借助文件操作。 一、建立自己的libjpeg 工程 为了修改后编译方便,也为了以后在 VC 环境下容易使用libjpeg 库,我们按以下步骤将 libjpeg 转换为 VC 环境下的工程。 1、在 VC 环境下重新建立一个空的static library 工程,工程名为 libjpeg,此处注意,新建工程不要包含 mfc,不要预编译头文件; 2、然后将 libjpeg 下的jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jchuff.h jconfig.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h jmorecfg.h jpegint.h jpeglib.h jversion.h 等文件拷贝到新工程的文件夹下,并将.c 文件改名为.cpp; 3、将所有的源文件及头文件添加到新建的工程中; 4、编译新工程,此时就可以生成 libjpeg.lib 了。 二、分析并修改源代码 我们知道,libjpeg 是利用FILE 进行存取图像数据的,接下来,我们就要分析一下libjpeg 是怎样利用FILE 进行存取图像数据的, 然后我们用内存拷贝的方式替换掉所有的文件操作(I/O),也就实现了内存中进行图像压缩和解压缩的目标。 下面,先分析压缩图像时 libjpeg 是怎样利用FILE 进行存储数据的。我们先看在进行图像压缩时,我们所调用的跟文件有关系的函数: jpeg_stdio_dest(j_compres_ptr cinfo, FILE *outfile); 我们找...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部