linux交叉编译jpeg库——显示jpeg图片
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漂亮好多
附上代码,刚学嵌入式Linux没多久,虽然没多少技术含量{:lol:} 皮尔斯 发表于 2019-1-27 18:38
附上代码,刚学嵌入式Linux没多久,虽然没多少技术含量
为啥效果比bmp好 皮尔斯 发表于 2019-1-27 18:38
附上代码,刚学嵌入式Linux没多久,虽然没多少技术含量
同问,为什么JPEG的效果比BMP好?
BMP是无损图片格式,JPEG是经过DCT变换的有损压缩格式,难道说你的BMP显示是的凤姐,JPEG显示的是林志玲? 哈哈 dragonlands 发表于 2019-1-27 18:56
同问,为什么JPEG的效果比BMP好?
BMP是无损图片格式,JPEG是经过DCT变换的有损压缩格式,难道说你的BMP ...
对啊,bmp图片看起来白白的,像素点也不是很精致。但是jpeg显示出来颜色很鲜艳,像素点也不明显。是我bmp显示有问题吗 huangqi412 发表于 2019-1-27 18:47
为啥效果比bmp好
对啊,bmp图片看起来白白的,像素点也不是很精致。但是jpeg显示出来颜色很鲜艳,像素点也不明显,是我的bmp显示的问题吗 图像效果跟存储格式毫无关系,,,,纯心里作用哈哈哈{:loveliness:} 真正考虑嵌入中使用jpg ,主要是bmp太占内存
libtool是否是非必须的?可以直接将jpegsrc编译进自己的代码?
john78 发表于 2019-1-27 21:15
真正考虑嵌入中使用jpg ,主要是bmp太占内存
libtool是否是非必须的?可以直接将jpegsrc编译进自己的代码? ...
那也可以,直接下载别人做好的库,放到/lib目录下 dragonlands 发表于 2019-1-27 18:56
同问,为什么JPEG的效果比BMP好?
BMP是无损图片格式,JPEG是经过DCT变换的有损压缩格式,难道说你的BMP ...
大哥,如果要把摄像头的图像也显示到lcd,格式要怎么转换呢{:shocked:} 皮尔斯 发表于 2019-1-27 21:17
那也可以,直接下载别人做好的库,放到/lib目录下
谢谢,刚开始弄linux,还没有研究过库,我的意思是否可以直接将这个jpg的源码和自己的代码一起编译,看到这个文件夹下,好多不知道干嘛的扩展名的文件,不理解 john78 发表于 2019-1-27 21:25
谢谢,刚开始弄linux,还没有研究过库,我的意思是否可以直接将这个jpg的源码和自己的代码一起编译,看到 ...
不能直接编,前提你的系统库里有jpeglib动态库,才可以。库的安装方法如本帖,我弄了好多天,终于搞定了,所以发出来哈哈,我也是新手 上Yocto吧,不然你缺一个库搞几天 皮尔斯 发表于 2019-1-27 21:19
大哥,如果要把摄像头的图像也显示到lcd,格式要怎么转换呢
摄像头进来的格式一般是YUV4:2:2,JPEG的色彩空间大多也是YUV。 dragonlands 发表于 2019-1-27 22:29
摄像头进来的格式一般是YUV4:2:2,JPEG的色彩空间大多也是YUV。
但是摄像头輸出YUV4:2:2不是mjpeg,没办法直接使用jpeg lib呀
页:
[1]