• libjpeg源码库使用编程实验


    //--------------------------------------------------------------

    // libjpeg源码库的使用说明// 

    // readme @yeven-2010.10.7

    //-------------------------------------------------------------

    这些天跟视频打交道,所以需要进行图片的编程,由于jpeg的广泛感使用和优越性能,jpeg压缩便成为我实验的目标。

    使用源码是IJG JPEG Library,下载地址:http://www.ijg.org/

    推荐使用v6版本,我使用的是v8板

    实验环境:ubuntu10.04

    我的工程下载地址:http://ishare.iask.sina.com.cn/f/11437846.html


    1、环境搭建

      (1)、到www.ijg.org网站下载libjpeg的源码,我使用的是v8版本。解压到/home/yixiaoyang/桌面/jpeg/jpeg-8b-linux 

      (2)、配置

      libjpeg:./configure --enable-shared --prefix=/home/yixiaoyang/桌面/jpeg/jpeg-8b-linux/shlib

      configure需要加上ennable shared配置生成共享库。

      因为ubuntu自带的是v6版本,所以为了避免覆盖原油版本引起系统问题prefix指定自己的share lib目录

      configure后将生成Makefile文件,检查这个文件,看prefix修改过来没有,如果没有,手动修改一下

      (3)、编译安装

      make &&make install

      可以看到,在你指定prefic文件夹下的多了一些文件。这些就是我们应用程序要用的库和一些实现文件。

    3、使用

      新建工程文件夹,把lib整个目录拷贝进去,我们将用到其中的libjpeg.lib,jconfig.h,jmorecfg.h,jpeglib.h这几个文件,也考拷贝进去。

      编写应用文件mtest.c,主函数在这里面。

      关于具体的interface使用请参考源码中的example.c和这篇文章:http://www.vckbase.com/document/viewdoc/?id=1790

      我的目录:

    3、编译、运行

      额,先把我的makefile贴出来

    test:jconfig.h jmorecfg.h jpeglib.h mtest.c
    gcc
    -pg -o test mtest.c jpeglib.h jconfig.h jmorecfg.h -ljpeg -L /home/yixiaoyang/桌面/yeven-jpeg/lib

      一定注意“-ljpeg -L /home/yixiaoyang/桌面/yeven-jpeg/lib”链接库的选项,指定到自己的库,否则ld的时候会出错。

    4、其他

      由于不同及其的更新成都不一样,可能有libjpeg库运行时错误的现象。自己google吧,大多是/usr/lib中的共享库版本不一致引起的,所以推荐使用v6版本。

      编写应用程序的是有也会有各种不同的错误,需要简单的修改一下源码。其中大多是定义无法定位引起的。随机应变吧。

    更多信息参考:http://www.jpegcameras.com/libjpeg/libjpeg.html

    压缩解压效果.

    原图:

    重复压缩解压后的图:

    大小为原来的1/4左右,差别不大,但这个数据不是压缩倍率,注意了。

  • 相关阅读:
    jcmd命令
    IDEA运行时报错“类文件具有错误的版本 55.0, 应为 52.0”的解决方法
    Java监控工具
    jmap命令
    jstack命令
    jstat命令
    Windows系统环境变量
    Java Mission Control远程连接JVM
    pip安装cv2报错
    IDEA生成jar文件
  • 原文地址:https://www.cnblogs.com/yixiaoyang/p/1871152.html
Copyright © 2020-2023  润新知