原文地址:http://blog.csdn.net/weixinhum/article/details/42718959

现在,很多图像处理工具和开源库都给出了图像解码的函数接口,然而有时这些接口并不能完全满足我们的需求,比如如果我们想直接去解码内存中的JPEG数据就没有这样的接口。

由于之前做的项目刚刚好设备传过来的图像数据就是JPEG格式的,如果将每帧图像数据都保存成文件然后再借助开源库提供的接口去读入文件会显得很掉价,所以做了一些直接解码内存中JPEG数据的研究。经过对比发现libjpeg库对JPEG图像的编解码支持甚好,而且相对于OpenCV库,复杂度小很多,是故就决定动手来实现我自己想要的接口。

所谓“巧妇难为无米之炊”,要用libjpeg库,第一步自然是去下载其源码,下载地址在这里

下载完解解压后,就要去编译libjpeg库了,这里我主要参考的是这篇文章这篇文章。因为第一篇用的是VS2012,有些路径跟本文设置略有差别,所以如果你用的是VS2012,请毫不犹豫的点开链接,跟着他的步骤做吧。当然还是要说,VS2013实在是好用太多。

OK,现在开始做编译的准备工作,其实也就两步:

第一步:找到刚刚解压出来的“jpeg-9a”文件夹下面的“makefile.vc”文件,用记事本或Notepad++等编辑工具打开,然后找到里面的“!include <win32.mak>”,将“win32.mak”改为绝对路径。不难看出这个win32.mak是个文件,其是VS下的一个文件,所以路径就跟你自己装的VS版本有关,本人装的是VS2013版本,默认情况下该版本中这个文件在“C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include”这个目录下。因而我们将刚刚搜索到的那句话改为“!include <C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\win32.mak>”就OK了。

第二步:打开VS2013的命令行:“VS2013 x86 本机工具命令提示”,这个用开始菜单打开会方便点,直接找到“Visual Studio 2013”这一项,打开里面的“Visual Studio Tools”文件夹就可以看到。如果是Win8的用户则建议去装个开始菜单工具,不然就去VS的安装目录下面找。打开命令行之后CD到解压出来的“jpeg-9a”目录下,输入“nmake /f makefile.vc setup-v10”,回车,待命令行执行完命令后,准备工作就大功告成啦。关于命令行的操作,具体如下图:

下面来做编译,其实已经没什么难点了,上面工作做完之后,“jpeg-9a”文件夹下面会生成一个VS的工程。直接运行里面的“jpeg.sln”,然后VS提示要升级编译器什么的点是,进入编程界面后直接编译就大功告成了。编译完成后在“jpeg-9a”文件夹下的“Release”文件夹中可以看到一个“jpeg.lib”文件,这个就是我们刚刚编译出来的静态链接库。

要使用这个静态链接库,只要先包含进jconfig.h,jmorecfg.h,jpeglib.h这三个头文件,然后把刚刚编译出来的jpeg.lib加进工程中就可以了。习惯上会把jpeg.lib改名为libjpeg.lib。下面提供一个jpeg转bmp的例子,代码是基本照搬这篇文章的,只是做了少量修改。

工程下载地址

关于解码内存中JPEG数据的实现方法介绍,文章地址如下:http://blog.csdn.net/weixinhum/article/details/43089047

【转】VS2013编译libjpeg库的更多相关文章

  1. VS2013编译libjpeg库

    第一步:找到刚刚解压出来的“jpeg-9a”文件夹下面的“makefile.vc”文件,用记事本或Notepad++等编辑工具打开,然后找到里面的“!include <win32.mak> ...

  2. linux+vs2013编译静态库和动态库

    Linux下创建与使用静态库 Linux静态库命名规则 Linux静态库命名规范,必须是"lib[your_library_name].a":lib为前缀,中间是静态库名,扩展名为 ...

  3. 编译libjpeg库

    最近在写车牌识别软件,需要用到BMP转成JPG的功能,自然就想到借助libjpeg来实现 OS: win7 64位 编译器: VS2008 1. 下载源代码下载地址:http://www.ijg.or ...

  4. win7 64bits下编译libjpeg库

    一.下载源代码.下载地址:http://www.ijg.org/.注意:一定要下载win32 版本二.编译源代码.       1.解压源代码,(不需要修改,修改报错)修改源代码中jconfig.vc ...

  5. vs2013编译boost库

    打开vs2013>>visual studio tools>>VS2013 x64 本机工具命令提示 cd D:\lib\boost_1_55_0\boost_1_55_0 b ...

  6. vs2013 + python3.52 + boost1.61, 编译C++库失败

    使用vs2013  + python3.52 + boost1.61,  编译C++库,  失败!  提示如下": boost::python::detail::init_module(st ...

  7. VS2013编译boost1.55库

    1. 官网下载最新的Boost库,我的是1.55 2. 在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\det ...

  8. CentOS下安装libjpeg库及编译GD库

    GD库明明安装了,可处理图片的时候还是报错 Fatal error: Call to undefined function imagecreatefromjpeg() .PHP安装后,默认的gd库不支 ...

  9. Vs2012(Vs2013) 编译 64位 Qt (动态库), 并使用自编译Qt建立工程(悲催经历)。(含遗留问题)

    仅供参考. 体会:我个人此次编译不该使用Vs2013编译Qt. 使用以下程序: Qt : qt-opensource-windows-x86-msvc2012_64_opengl-5.2.1.exe ...

随机推荐

  1. Python:对象

    #!/usr/bin/python3 #对象实例 class Person: num=200 def __init__(self,name,sex): self.name=name self.sex= ...

  2. QuickSort 递归 分治

    QuickSort 参考<算法导论>,<C程序设计语言> #include<stdio.h> void swap(int v[], int i, int j); v ...

  3. 修正constructor的指向

    function Aaa(){ } //Aaa.prototype.constructor = Aaa;   //每一个函数都会有的,都是自动生成的 Aaa.prototype.name = '小明' ...

  4. [Machine Learning] Probabilistic Graphical Models:二、Bayes Network Fundamentals(1、Semantics & Factorization)

    一.How to construct the dependency? 1.首字母即随机变量名称 2.I->G是更加复杂的模型,但Bayes里不考虑,因为Bayes只是无环图. 3.CPD = c ...

  5. 深入了解jquery中的键盘事件

    很多时候,我们需要获取用户的键盘事件,下面就一起来看看jquery是如何操作键盘事件的. 一.首先需要知道的是: 1.keydown() keydown事件会在键盘按下时触发. 2.keyup() k ...

  6. TensorFlow和最近发布的slim

    笔者将和大家分享一个结合了TensorFlow和最近发布的slim库的小应用,来实现图像分类.图像标注以及图像分割的任务,围绕着slim展开,包括其理论知识和应用场景. 之前自己尝试过许多其它的库,比 ...

  7. 2016022612 - redis事务命令集合

    参考地址:http://www.yiibai.com/redis/redis_transactions.html Redis事务由指令 MULTI 启动,以EXEC结束. 1.multi 用途:事务开 ...

  8. ios开发之C语言第一天

    最近在学习ios开发,先学习C语言,再学习OC和swift.正所谓"万丈高楼平地起",打好基础是很重要的,所以C语言也必须好好学习.学习中所使用的操作系统是OS X,开发工具是Xc ...

  9. jquery添加元素

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <head> ...

  10. C#(asp.net)备份还原mssql数据库代码【转】

    采集自互联网,未验证..... 如果我们使用虚拟主机为网站空间,这时如果需要备份和还原msssql数据库是非常麻烦,如果在网站后台管理当中加入对msssql数据库的操纵,可以使我们对数据库的备份和还原 ...