嵌入式linux下libjpeg的小例子

平台:fc9260ek,linux2.6.22

1、 编译建立Jpeg

如果你已经有了jpeg库的话,可以忽略此节。

       进入Buildroot目录,make menuconfig

选择Package Selection for the target  --->

选择 Graphic libraries and applications (graphic/text)  --->

选择jpeg,然退出Buildroot,保存配置

make

Buildroot将自动下载jpeglib(目前版本是jpeg-6b)编译。编译成功后,将在你的buildroot/build_arm/staging_dir/lib目录下,出现libjpeg.alibjpeg.solibjpeg.so.62libjpeg.so.62.0.0。其中.a的是静态库,.so的是动态库。

2、 编译建立lrzsz

lrzszzModem协议,使用rz命令,FC9260EK从主机上接收文件,而我们使用sz把压缩好的jpg文件从FC9260EK上发送到自己的电脑上观察结果。

如果已经有了lrzsz,可以忽略此节

还是进入Buildroot目录,make menuconfig

选择Package Selection for the target  --->

选择 Networking  --->

 

选择 lrzsz,然退出Buildroot,保存配置

make

              Buildroot可以自动下载lrzsz(目前版本lrzsz- 0.12.20 ),你可以在你的roofs下看到

       可以看见rzsz两个文件。

 

3、 例子简单说明

这个例子使用了静态,需要把jpeglib.hlibjpeg.a直接拷贝到当前的工作目录下。

对于jpeglib的头文件包含,需要

extern "C" {

  #include <jpeglib.h>

}

而不能是简单的#include <jpeglib.h>,那样会无法编译成功。

 

整个测试程序只有三个函数,cvt_TestReadcvt_TestWritemain。其中cvt_TestRead为读取jpg文件,cvt_TestWrite把图像数据压缩保存到指定的文件中去。

      

       具体代码详见jpegtest.cpp

 

4、 Makefile使用简单说明

工程文件名就是main函数所在的文件名,在APP这个编译选项指定

 

使用make all,编译整个工程文件,Makefile会自动把生成的可执行文件复制到根文件系统下指定的目录下,FC9260的默认路径是 /usr/bin目录下,然后自动重新制作根文件系统

使用make test,编译整个工程文件,但是不会复制可执行文件,不会制作根文件系统。

使用make clean,清除编译结果和根文件系统下的可执行文件,不会重新制作根文件系统。

使用make distclean,清除编译结果和根文件系统下的可执行文件,重新制作根文件系统

 

5、 测试简单说明

启动FC9260Linux

输入 cd usr/bin

 

       进入usr/bin目录后,输入 jpgtest lena.jpg testout.jpg

      

       第一个参数是输入的源文件,用于jpg解压,程序把解压得数据重新压缩,保存到第二个参数指定的文件中去,如果文件不存在,尝试创建新文件。

       如果你的根文件系统得usr/bin下没有lena.jpg,请使用rz命令发送,或者重新制作根文件系统,如果文件存在,执行结果如下:

执行完毕后,可以使用sz命令,把生成的文件发出来看看

传输完毕,结果如下:

这个质量较高,可以把cvt_TestWrite(infile,94);这行代码中的94改成1

cvt_TestWrite(infile,1);

重新执行make,然后把新的根文件系统下载到FC9260上,重复上述操作,查看结果

 

代码和原始图像下载

   

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 要在Linux上安装libjpeg,您可以按照以下步骤进行操作: 1. 打开终端并使用以下命令更新软件包列表: ``` sudo apt-get update ``` 2. 安装libjpeg开发库和运行时库: ``` sudo apt-get install libjpeg-dev libjpeg62 ``` 3. 您可以检查libjpeg是否已正确安装: ``` dpkg -s libjpeg62 ``` 如果在终端中看到“状态:已安装”,则表示已成功安装libjpeg。 希望这可以帮助您安装libjpeg。 ### 回答2: 要在Linux上安装libjpeg,可以按照以下步骤进行操作: 1. 首先,打开终端并以root用户身份登录。 2. 使用包管理工具来安装libjpeg。在大部分Linux发行版中,可以使用以下命令安装libjpeg: - 对于Debian或Ubuntu系统:sudo apt-get install libjpeg-dev - 对于CentOS或Fedora系统:sudo yum install libjpeg-devel 3. 安装完毕后,您可以在系统中找到libjpeg的库文件和头文件。 4. 如果您需要在开发中使用libjpeg,您需要链接libjpeg库文件。在编译时加入以下参数: - 如果使用GCC编译器: gcc -o output_file input_file.c -ljpeg - 如果使用CMake来构建项目: 在CMakeLists.txt中添加以下内容: find_package(JPEG REQUIRED) target_link_libraries(your_project_name JPEG::JPEG) 5. 现在,您可以在您的程序中包含libjpeg的头文件(通常是jpeglib.h),以及使用libjpeg提供的功能。 希望这些步骤可以帮助您成功地在Linux上安装libjpeg。如果您遇到任何问题,可以在相关的Linux社区论坛或开发者论坛上寻求帮助。 ### 回答3: 在Linux上安装libjpeg,可以按照以下步骤进行操作: 第一步,打开终端窗口,在命令行中输入以下命令以安装libjpeg的开发包: ``` sudo apt-get install libjpeg-dev ``` 这将从软件包管理器中下载并安装libjpeg的开发包。 第二步,安装完成后,可以使用以下命令来检查libjpeg是否已成功安装: ``` dpkg -s libjpeg-dev ``` 如果显示了与libjpeg-dev软件包相关的信息,表示安装已成功。 第三步,如果需要在编译某个程序时使用libjpeg库,可以在编译命令中加入以下参数: ``` -ljpeg ``` 例如,编译一个名为example.c的C程序,并使用libjpeg库可以执行以下命令: ``` gcc example.c -o example -ljpeg ``` 另外,也可以从libjpeg的官方网站(http://libjpeg.sourceforge.net/)上下载源代码包,并按照编译源代码的方式进行安装。但是在大多数Linux发行版中,使用软件包管理器进行安装更加简单和推荐。 总结一下,安装libjpeg可以通过使用软件包管理器来安装相关的开发包,也可以从源代码包编译安装。使用libjpeg库时,需要在编译命令中指定相关参数。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值