转自: http://blog.csdn.net/ice__snow/article/details/52563944 ,有几处做了一部分修改

一、 编译

下载地址 http://www.ijg.org/

1、下载并解压,放在一个好找的目录就行:

2、进入jpeg-9b,找到jconfig.vc,复制并改名为jconfig.h,否则会产生无法生成jconfig的警告

3、找到makefile.vc这个文件,打开(随便一个文本编辑器)找到这一行

 
把路径改为win32.mk在你电脑上的路径,每个人的可能不太一样,路径差别可能不是很大,我的是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\win32.mak,改为 

4、准备编译,我用的是VS2015命令提示符,不要选ARM的,选择 vs2015 x86 x64兼容工具命令提示符

5、进入jpeg-9b的目录,输入编译命令开始编译


命令:nmake -f makefile.vc

6、编译后在目录下找到库libjpeg.lib就编译成功了。

二、使用

具体的使用在目录下的example.c中有,注释非常细,看了基本就会用了。这里我简单说说用法。

1、使用配置

有两种方法: 
第一种:添加libjpeg的头文件的路径和lib的路径到VS的工程中,项目属性页 
,然后在 

中添加libjpeg.lib 
 
第二种:把用到的头文件和libjpeg.lib拷到你的工程中,只在工程里做第一种的第三步添加libjpeg.lib就行了。

2、使用

程序里包含头文件#include <jpeglib.h>就行了。 
大部分照搬,细节可以看里面的英语注释,主要的几个地方修改下就行了,看下面的汉语注释:

// 这些和错误处理有关,不用管
struct my_error_mgr {struct jpeg_error_mgr pub;  /* "public" fields */jmp_buf setjmp_buffer;  /* for return to caller */ }; typedef struct my_error_mgr * my_error_ptr; METHODDEF(void) my_error_exit(j_common_ptr cinfo) { my_error_ptr myerr = (my_error_ptr)cinfo->err; (*cinfo->err->output_message) (cinfo); longjmp(myerr->setjmp_buffer, 1); } // 读取图像的函数 // 我添加了一个参数,是我库里的zMatrix类对象,用于保存读取的图片数据 GLOBAL(int) read_JPEG_file(char * filename, z::Matrix8u & img) { struct jpeg_decompress_struct cinfo; struct my_error_mgr jerr; FILE * infile; JSAMPARRAY buffer; int row_stride; if ((infile = fopen(filename, "rb")) == NULL) { fprintf(stderr, "can't open %s\n", filename); return 0; } cinfo.err = jpeg_std_error(&jerr.pub); jerr.pub.error_exit = my_error_exit; if (setjmp(jerr.setjmp_buffer)) { jpeg_destroy_decompress(&cinfo); fclose(infile); return 0; } jpeg_create_decompress(&cinfo); jpeg_stdio_src(&cinfo, infile); // 这个函数获取了读取图片的信息,包括图片的高和宽 (void)jpeg_read_header(&cinfo, TRUE); // 在这里添加你自己的代码,获取或用户到图像信息 img.create(cinfo.image_height, cinfo.image_width, 3); (void)jpeg_start_decompress(&cinfo); row_stride = cinfo.output_width * cinfo.output_components; buffer = (*cinfo.mem->alloc_sarray)((j_common_ptr)&cinfo, JPOOL_IMAGE, row_stride, 1); while (cinfo.output_scanline < cinfo.output_height) { // 一行一行的读取 (void)jpeg_read_scanlines(&cinfo, buffer, 1); // 在这里添加代码获取到图片的像素数据 // buffer保存了读取的当前行的数据,保存顺序是RGB // output_scanline是已经读取过的行数 for (int i = 0; i < img.cols; ++i) { img[cinfo.output_scanline - 1][i * 3 + 2] = buffer[0][i * 3 + 0]; img[cinfo.output_scanline - 1][i * 3 + 1] = buffer[0][i * 3 + 1]; img[cinfo.output_scanline - 1][i * 3 + 0] = buffer[0][i * 3 + 2]; } } (void)jpeg_finish_decompress(&cinfo); jpeg_destroy_decompress(&cinfo); fclose(infile); return 1; }

代码:https://github.com/ffiirree/zMatrix/blob/master/zMatrix/zgui/zgui.cpp

LINUX 下的安装

1、下载在libjpeg到/usr/local/bin下

2、./configure --enable-shared --prefix=$CONFIGURE_PREFIX
3、make

4、make install

欢迎大家来我的新家看一看 3wwang个人博客-记录走过的技术之路

转载于:https://www.cnblogs.com/wang985850293/p/6349399.html

libjpeg安装和使用相关推荐

  1. ubuntu16.04 libjpeg安装

    下载:https://sourceforge.net/projects/libjpeg-turbo/files/ 我这里下载的是1.5.3版本,1.5.8以后的版本编译方式不同. 下载后缀名为tar. ...

  2. python3里的pillow怎么安装_“python安装pillow教程“python3.4怎么安装pil

    "python安装pillow教程"python3.4怎么安装pil python安装pillow教程2020-10-09 03:37:02人已围观 如何在python3.6中装p ...

  3. CentOS编译安装php扩展gd

    //安装平台: centos 5.5 x86_64 //软体: 详见安装过程 //安装基础依赖包 >yum -y install gcc gcc-c++ autoconf ncurses //编 ...

  4. libjpeg库移植与使用

    一.移植libjpeg库 库源码:http://www.ijg.org/files/ 这里下载的是jpegsrc.v9b.tar.gz,点击该文件即可下载.然后拷贝到虚拟机上. 解压命令: tar - ...

  5. 切图工具GraphicsMagick安装

    安装GraphicsMagick前需要先安装zlib.libpng*和libjpeg*,安装libjpeg*需要安装libtool* 及 libtool-ltdl-devel支持 准备工作: 检查当前 ...

  6. tesseract-4.0.0源码编译安装

    tesseract-4.0.0源码编译安装 安装开发工具 apt-get -y install gcc g++ make cmake autoconf automake libtool pkg-con ...

  7. GraphicsMagick安装、实时生成缩略图

    GraphicsMagick资料 ---------------------------------------------------------------------------- Graphi ...

  8. 【正点原子I.MX6U-MINI应用篇】5、嵌入式Linux在LCD上显示BMP、JPG、PNG图片

    一.BMP图像介绍与显示 我们常用的图片格式有很多,一般最常用的有三种:JPEG(或 JPG).PNG.BMP和GIF.其中 JPEG(或JPG).PNG以及 BMP 都是静态图片,而 GIF 则可以 ...

  9. 在 LCD 上显示 jpeg 图像

    1.图片格式有很多,一般最常用的有三种: JPEG(或 JPG). PNG. BMP. 在 LCD 上显示 BMP 图片格式: BMP 图像虽然没有失真.并且解析简单,但是由于图像数据没有进行任何压缩 ...

最新文章

  1. 网页爬虫python代码_Python 爬虫web网页版程序代码
  2. python开发的前景_python开发前景怎么样
  3. SpringBoot+MySql+ElementUI实现一对多的数据库的设计以及增删改查的实现
  4. 库函数设计:关于文件类打开操作函数不自动创建不存在的父目录问题
  5. IDEA 一直不停的scanning files to index解决办法
  6. php注解rbac,PHP的RBAC权限详解
  7. java反射异常之java.lang.NoSuchFieldException: school
  8. rabbitmq-通配符模式
  9. How to: Build a Client Application
  10. linux多级反馈队列的实现,多级反馈队列调度算法的实现
  11. NLP 带你分析 —— 扎克伯格在听证会上说了什么?
  12. easyui treegrid 获取新添加行inserted_IDEA 2020.2 稳定版发布,带来了不少新功能...
  13. 华为交换机关闭接口命令_华为路由交换机基础命令,看看你会哪些?
  14. Cinder - 读取glusterfs_shares_config代码
  15. 详述人工智能在自动驾驶中的应用
  16. ROS实战篇(一)如何在ROS中编写自己的package?------ 以节点通信为例
  17. 【Photoshop】批量修改图片分辨率
  18. python绘图设置时间坐标轴_Matplotlib绘图双纵坐标轴设置及控制设置时间格式
  19. 苹果手机天气温度显示80度_iPhone如何做到锁屏桌面显示天气?花上一分钟,亮屏就能看天气...
  20. 如何使用Dareboost改善网站性能(和转化)

热门文章

  1. 根据c语言的语法规则,下列( )是用户定义的合法标识符,C语言期末复习题附答案...
  2. mysql导出结构及数据结构,mysql导出数据结构+导出数据
  3. 利用arcgis模拟制作水下地形
  4. JavaIO流之文件路径
  5. 人人都能懂的ChatGPT解读
  6. STemWin 入门(1)
  7. uniapp实现国际化多语言切换
  8. 录像带/摄像带转光盘(上海)
  9. Cadence学习记录(一)元器件原理图绘制
  10. android dex 加固,Dex文件加固