嵌入式截屏工具-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拷贝到主机上,显示效果如下

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值