轻量级图片缩放库simage

前言

本次移植的目的首先是为了解决图片缩放的问题,其二是库的内存尽量小轻量级的图片缩放库以满足嵌入式的使用场景。经过一番调研对比选择了coin3d项目下的一个图像处理组件。这里简单介绍一下coin3d应用场景,它是一个基于场景图、保留模式、渲染和模型操作的 C++ 类库,最初由 SGI 设计。它在发布后迅速成为科学和工程界 3D 可视化和视觉模拟软件事实上的标准图形库。它也成为 VRML1 文件格式标准的基础。

1 环境搭建

源码下载:

git clone https://github.com/coin3d/simage.git

2 Ubuntu16验证

2.1 编译

首先编译simage得到动态库文件

cd simage 
./configure && make 

编译example文件

cd examples
gcc -o test simage-convert.c -L ../src/.libs/ -lsimage

2.2 测试

测试simage库是否可用,利用编译好的test文件进行测试,可以对图片进行缩放,可以包括水平缩放和垂直缩放等操作。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../src/.libs/
root@ubuntu:/home/learn/libpng/simage/examples# ./test 
Usage:
 ./test <infile> <outfile> [-newsize <x> <y>] [-scale <xmul> <ymul>] [-alphathreshold <val>] [-addalpha <filename>] [-setundef]

3 Arm交叉编译

3.1交叉编译依赖库:

libpng库编译:这里libpng依赖zlib库,因此需要进行libz编译。

#安装zlib库
wget http://www.zlib.net/zlib-1.2.12.tar.gz
tar -xvf zlib-1.2.12.tar.gz
cd zlib-1.2.12/
export CC=arm-himix200-linux-gcc
./configure --prefix=/home/disk/simage/install
#安装libpng库
git clone https://github.com/glennrp/libpng.git
cd libpng
./configure --prefix=$PWD/../install --host=arm-himix200-linux CFLAGS="-I$PWD/../install/include" LDFLAGS="-lz -L$PWD/../install/lib" CPPFLAGS="-I$PWD/../install/include"

jpeg官网文件路径:http://www.ijg.org/files/

wget http://www.ijg.org/files/jpegsrc.v9e.tar.gz
tar -xvf jpegsrc.v9e.tar.gz
cd jpeg-9e
./configure --prefix=$PWD/../install --host=arm-himix200-linux
make && make install

3.2 交叉编译simage库

编译完依赖库libpng和libjpeg库后即可开始simage库编译,添加头文件依赖和库依赖即可编译。

export CC=arm-himix200-linux-gcc
export LD=arm-himix200-linux-ld 
export RANLIB=arm-himix200-linux-ranlib
export CFLAGS="-I$PWD/../install/include"
export CXXFLAGS="-I$PWD/../install/include"
export LDFLAGS="-lpng -ljpeg -lz -lm -L$PWD/../install/bin"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/../install/lib
cd simage 
./configure --prefix=$PWD/../install --host=arm-himix200-linux && make && make install

编译完成可得到如下文件:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38731735/article/details/124058531