天天看點

100ASK_IMX6ULL arm闆子如何顯示圖檔、漢字、劃線、背景色

最近在研究基于imx6ull開發闆,想讓開發闆支援顯示圖檔、字元串、背景色的功能。

操作的主要步驟如下:

  1. 移植裝置樹和驅動
  2. 移植libjpeg庫
  3. 編寫測試程式

一、移植裝置樹和驅動

開發闆原廠SDK已經移植了lcd對應的裝置樹和驅動。具體可以參考韋東山老師的文章

https://blog.csdn.net/thisway_diy/article/details/104697924

二、移植libjpeg庫

1.下載下傳libjpeg庫

下載下傳位址:

http://www.ijg.org/files/

選擇版本:jpegsrc.v6b.tar.gz

2.解壓

yikou@ubuntu:/work/lib$ tar -zxvf jpegsrc.v6b.tar.gz 
           

3.配置

yikou@ubuntu:/work/lib$ cd jpeg-6b/

./configure --host=arm-linux-gnueabihf --prefix=$PWD/temp_install
如果遇到錯誤提示沒有某個目錄,隻需要手動建立即可
           

4. 安裝

yikou@ubuntu:/work/lib/jpeg-6b$ make
yikou@ubuntu:/work/lib/jpeg-6b$ make install
           

5.檢視

yikou@ubuntu:/work/lib/jpeg-6b$ cd temp_install/
yikou@ubuntu:/work/lib/jpeg-6b/temp_install$ ls
bin  include  lib  share
           

我沒有使用動态庫,而是直接使用靜态庫/work/lib/jpeg-6b/libjpeg.a 編譯代碼,友善操作。

三、 編譯測試程式

一口君是把靜态庫直接拷貝到測試代碼目錄lib下,頭檔案拷貝到include下。

100ASK_IMX6ULL arm闆子如何顯示圖檔、漢字、劃線、背景色
  1. lcd.c、lcd_show_jpeg.c為基于libjpeg庫實作的顯示漢字、顯示圖檔、劃線等功能函數。
  2. HZK16為漢字庫
  3. ./lib/libjpeg.a 是libjpeg靜态庫
  4. include下的頭檔案是圖檔格式處理、顯示字元串、劃線要用到的其他的頭檔案

這些功能具體原理,可以自己檢視代碼,暫不讨論。

完整代碼請關注 一口Linux,背景回複IMX6ULLlcd

以下是測試程式檔案:

main.c

#include <stdio.h>
#include <unistd.h>
#include "lcd.h"
#include "lcd_show_jpeg.h"
 
int main(int argc, const char *argv[])
{
	LCD_Init();    //初始化
	LCD_Clear(RED);//背景呈紅色

	for(;;)
	{//1024 * 600
		printf("------一口Linux----------\n");
		LCD_PutString(240,136,"一口Linux",BLUE,RED);//在240.136位置顯示一口Linux,藍字紅底
		 
		sleep(1);
		
		LCD_Clear(BLUE);
		show_jpeg("test.jpeg");//顯示圖檔test.jpeg

		sleep(10);
	}
	return 0;
}
           
arm-linux-gnueabihf-gcc *.c -o run -I  ./include/ ./lib/libjpeg.a
           

執行結果:

100ASK_IMX6ULL arm闆子如何顯示圖檔、漢字、劃線、背景色

想呈現其他顯示效果,隻需根據執行個體調用對應函數即可。

備注:常見錯誤解決

如果版本選擇的不對,會遇到以下錯誤:

Wrong JPEG library version: library is 90, caller expects 62
           

因為使用的庫版本太高是90的,是以需要下載下傳62版本,對應的是這個壓縮包jpegsrc.v6b.tar.gz。

其中:62 對應 6b

在移植mjpeg-streamer也會遇到類似錯誤,按照步驟修改即可。

然後按照1-5步驟重新操作即可

100ASK_IMX6ULL arm闆子如何顯示圖檔、漢字、劃線、背景色

更多linux知識,關注 一口Linux

歡迎關注公衆号:一口Linux

繼續閱讀