搜索
bottom↓
回复: 15

linux交叉编译jpeg库——显示jpeg图片

[复制链接]

出0入0汤圆

发表于 2019-1-27 18:36:08 | 显示全部楼层 |阅读模式
Linux下交叉编译jpeg库的安装使用经验分享
任务目标:要在lcd显示屏上显示一张jpeg图片
使用开发板:iTop4412精英板

一.安装ARM平台下的jpeg库

1.从网路上下载到jpegsrc.v9c.tar.gz(不要下载成.zip后缀的,那是windows平台的)    下载链接:http://www.ijg.org
     下载libtool.2.4.6,下载链接:https://www.gnu.org/software/libtool/   
在百度搜索的话大部分都是CSDN下载,要下载积分才能下载。其实外国的免费资料非常多,可以通过必应国际版搜索 xxxxx download,很多在国内网站下载要钱的资料在外国网站都可以找到免费的。

2.在ubuntu下新建一个安装目录,我的目录是/root/experiment/jpeg/jpeg
3.将下载好的jpegsrc.v9c.tar.gz和libtool.2.4.6拷贝到自己喜欢的目录下,分别输入指令tar zxvf jpegsrc.v9c.tar.gz和 tar zxvf libtool.2.4.6解压压缩包。
4.进入libtool.2.4.6的解压目录,执行“./configure --host=arm-none-linux-gnueabi”,配置完成环境后”make”一下,编译完成后把绿色的“libtool”文件copy到前面jpegsrc.v9c.tar.gz的解压文件里面。
5.mkdir创建文件夹/root/experiment/jpeg/jpeg
6.接着进入jpegsrc.v9c.tar.gz的解压文件里,行./configure--host=arm-none-linux-gnueabi --prefix=/root/experiment/jpeg/jpeg,这时/root/experiment/jpeg/jpeg目录下生成了几个子文件夹
7.在jpegsrc解压文件里我们还需要配置他的Makefile文件,进行如下修改sudo gedit Makefile,“CC= arm-none-linux-gnueabi-gcc”;“AR= arm-none-linux-gnueabi-ar rc”;“AR2= arm-none-linux-gnueabi-ranlib”,不存在的项就不用改了。
8.最后执行make编译,再安装库make install。这时在/root/experiment/jpeg/jpeg/lib下生成.so的库文件,执行file libjpeg.so.9.1.0,查看文件是不是ARM平台下的。
9.对写好的app文件编译 arm-none-linux-gnueabi-gcc lcd_show_jpeg.c -o lcd_show_jpeg -I /home/linuxSystemCode/lcd/simplelcd/include/ -L /lib -ljpeg


下面是jpeg图片显示的效果,色彩比bmp漂亮好多


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2019-1-27 18:38:15 | 显示全部楼层
附上代码,刚学嵌入式Linux没多久,虽然没多少技术含量

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-1-27 18:47:10 来自手机 | 显示全部楼层
皮尔斯 发表于 2019-1-27 18:38
附上代码,刚学嵌入式Linux没多久,虽然没多少技术含量

为啥效果比bmp好

出150入640汤圆

发表于 2019-1-27 18:56:09 | 显示全部楼层
皮尔斯 发表于 2019-1-27 18:38
附上代码,刚学嵌入式Linux没多久,虽然没多少技术含量

同问,为什么JPEG的效果比BMP好?
BMP是无损图片格式,JPEG是经过DCT变换的有损压缩格式,难道说你的BMP显示是的凤姐,JPEG显示的是林志玲?

出0入0汤圆

发表于 2019-1-27 19:22:30 来自手机 | 显示全部楼层
哈哈

出0入0汤圆

 楼主| 发表于 2019-1-27 19:51:09 | 显示全部楼层
dragonlands 发表于 2019-1-27 18:56
同问,为什么JPEG的效果比BMP好?
BMP是无损图片格式,JPEG是经过DCT变换的有损压缩格式,难道说你的BMP ...

对啊,bmp图片看起来白白的,像素点也不是很精致。但是jpeg显示出来颜色很鲜艳,像素点也不明显。是我bmp显示有问题吗

出0入0汤圆

 楼主| 发表于 2019-1-27 19:51:32 | 显示全部楼层

对啊,bmp图片看起来白白的,像素点也不是很精致。但是jpeg显示出来颜色很鲜艳,像素点也不明显,是我的bmp显示的问题吗

出0入84汤圆

发表于 2019-1-27 21:03:16 | 显示全部楼层
图像效果跟存储格式毫无关系,,,,纯心里作用哈哈哈

出90入4汤圆

发表于 2019-1-27 21:15:33 | 显示全部楼层
真正考虑嵌入中使用jpg ,主要是bmp太占内存

libtool是否是非必须的?可以直接将jpegsrc编译进自己的代码?

出0入0汤圆

 楼主| 发表于 2019-1-27 21:17:32 | 显示全部楼层
john78 发表于 2019-1-27 21:15
真正考虑嵌入中使用jpg ,主要是bmp太占内存

libtool是否是非必须的?可以直接将jpegsrc编译进自己的代码? ...

那也可以,直接下载别人做好的库,放到/lib目录下

出0入0汤圆

 楼主| 发表于 2019-1-27 21:19:18 | 显示全部楼层
dragonlands 发表于 2019-1-27 18:56
同问,为什么JPEG的效果比BMP好?
BMP是无损图片格式,JPEG是经过DCT变换的有损压缩格式,难道说你的BMP ...

大哥,如果要把摄像头的图像也显示到lcd,格式要怎么转换呢

出90入4汤圆

发表于 2019-1-27 21:25:08 | 显示全部楼层
皮尔斯 发表于 2019-1-27 21:17
那也可以,直接下载别人做好的库,放到/lib目录下

谢谢,刚开始弄linux,还没有研究过库,我的意思是否可以直接将这个jpg的源码和自己的代码一起编译,看到这个文件夹下,好多不知道干嘛的扩展名的文件,不理解

出0入0汤圆

 楼主| 发表于 2019-1-27 21:59:11 | 显示全部楼层
john78 发表于 2019-1-27 21:25
谢谢,刚开始弄linux,还没有研究过库,我的意思是否可以直接将这个jpg的源码和自己的代码一起编译,看到 ...

不能直接编,前提你的系统库里有jpeglib动态库,才可以。库的安装方法如本帖,我弄了好多天,终于搞定了,所以发出来哈哈,我也是新手

出0入0汤圆

发表于 2019-1-27 22:06:02 来自手机 | 显示全部楼层
上Yocto吧,不然你缺一个库搞几天

出150入640汤圆

发表于 2019-1-27 22:29:56 | 显示全部楼层
皮尔斯 发表于 2019-1-27 21:19
大哥,如果要把摄像头的图像也显示到lcd,格式要怎么转换呢

摄像头进来的格式一般是YUV4:2:2,JPEG的色彩空间大多也是YUV。

出0入0汤圆

 楼主| 发表于 2019-1-28 08:52:50 | 显示全部楼层
dragonlands 发表于 2019-1-27 22:29
摄像头进来的格式一般是YUV4:2:2,JPEG的色彩空间大多也是YUV。

但是摄像头輸出YUV4:2:2不是mjpeg,没办法直接使用jpeg lib呀
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-2 21:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表