当前位置:   article > 正文

嵌入式截屏工具-gsnap移植

gsnap

最近一个嵌入式Linux项目中需要使用到截屏,Find了一个不错的工具gsnap,但需要交叉编译移植后才能使用,记录下移植过程。

目标机gcc版本:arm-none-linux-gnueabihf-gcc  gcc version 4.9.4

 

gsnap是根据Linux 系统的 FrameBuffer 机制,读取/dev/fb0文件里屏幕色彩的原始数据转化为可识别的jpg或者png文件,编译gsnap需依赖libjpeg、zlib、libpng源码。

下载:https://download.csdn.net/download/youshangpiaoyu/12827736

1.新建gsnap目录,解压依赖的源码

2.在gsnap目录下新建install目录用于安装编译后生成的文件

 

 

3.交叉编译

(1).编译jpeg,进入jpeg-9d目录:

依次执行

./configure --host=arm-none-linux-gnueabihf --prefix=/home/yh/gsnap/install/jpeg

make

make install

 

(2).编译zlib,进入zlib-1.2.11目录:

prefix=/home/yh/gsnap/install/zlib CC=arm-none-linux-gnueabihf-gcc ./configure

make

make install

 

(3).编译png,进入libpng-1.6.37目录:

拷贝makefile并更改为以下内容 执行 cp ./scripts/makefile.linux makefile

 

执行make前将pngpriv.h文件130行改为(不更改make通不过。报*** [pngtest] Error 1 )

#  if defined(PNG_ARM_NEON) && (defined(__ARM_NEON__) || defined(__ARM_NEON)) && \

make

make install

 

4.编译gsnap,进入gsnap目录,更改makefile 连接编译生成的相关文件

all:

        #$(CC) -g gsnap.c -L/usr/lib -lpng -ljpeg -lz -lm -o gsnap

        arm-none-linux-gnueabihf-gcc -g gsnap.c \

        -L/home/yh/gsnap/install/png/lib \

        -L/home/yh/gsnap/install/jpeg/lib \

        -L/home/yh/gsnap/install/zlib/lib \

        -I/home/yh/gsnap/install/png/include \

        -I/home/yh/gsnap/install/jpeg/include \

        -I/home/yh/gsnap/install/zlib/include \

                -lpng -ljpeg -lz -lm -o gsnap

clean:

        rm -f gsnap

执行make all

可以看到生成了gsnap可执行文件

 

5.验证

将gsnap拷贝到目标机器/usr/bin,执行截屏操作

如果缺少libpng16.so.16文件

将编译出来的../install/png/lib目录下libpng16.so.16.37文件重命名为libpng16.so.16拷贝到目标机usr/lib目录下即可

 

执行 gsnap radio.jpg /dev/fb0  可以看到生成了radio.jpg文件,截屏成功。

 

将radio.jpg拷贝到主机上,显示效果如下

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/964593
推荐阅读
相关标签
  

闽ICP备14008679号