Qt开发专栏:三方库开发技术(点击传送门)
上一篇:《Jpeglib开发笔记(一):JpegLib库介绍、windows编译和Demo》
下一篇:敬请期待...
前言
前篇编译了windows上的,现编译ubuntu上的。
JpegLib下载地址
点击对应文件即可下载,如下图:
(与windows下载的文件不同,windows是zip)
QQ群:1047134658(点击“文件”搜索“jpeg”,群内与博文同步更新)
JepgLib编译
步骤一:下载放到ubuntu编译文件件
步骤二:配置
./configure --prefix /home/yang/compile/jpeg/jpeg-9c/install
步骤三:make
步骤四:make install
Demo
解码测试运行成功,如下图:
在Qt项目中配置链接库的路径,添加环境变量LD_LIBRARY_PATH(不然会报错,找不到链接库),如下图:
测试代码
#include "JpegManager.h" #include <QDebug> JpegManager::JpegManager(QObject *parent) : QObject(parent) { } void JpegManager::testDemo1(QString path) { FILE *file; int width; int height; struct jpeg_decompress_struct jDecompressStruct; struct jpeg_error_mgr jErrorMgr; if ((file = fopen(path.toUtf8().data(), "rb")) == 0) { qDebug() << __FILE__ << __LINE__ << "Failed to open file:" << path; return; } // 初始化并申请解码器 jDecompressStruct.err = jpeg_std_error(&jErrorMgr); jpeg_create_decompress(&jDecompressStruct); // 指定图片文件信息 jpeg_stdio_src(&jDecompressStruct, file); // 读取头部信息 jpeg_read_header(&jDecompressStruct, TRUE); // 开始解码 jpeg_start_decompress(&jDecompressStruct); // 获取图片宽高 width = jDecompressStruct.image_width; height = jDecompressStruct.image_height; qDebug() << __FILE__ << __LINE__ << "decompress file:" << path << width << "x" << height; printf("decompress file:%s, %d x %d\n", path.toUtf8().data(), width, height); // 释放解码器对象 jpeg_destroy_decompress(&jDecompressStruct); fclose(file); }