ugraphics
概述
ugraphics組件是基于SDL2封裝的接口,支持JPEG/PNG圖像解碼繪制、點(diǎn)/線/框圖像等繪制、圖像旋轉(zhuǎn)、RGB格式轉(zhuǎn)換、中英文字符繪制等功能,方便用戶進(jìn)行基礎(chǔ)的圖像應(yīng)用開發(fā)。
版權(quán)信息
Apache 2.0 License
目錄結(jié)構(gòu)
├── include
│ ├── ugraphics.h # 對外頭文件
│ ├── format
│ │ └── to_rgb565.h # rgb格式轉(zhuǎn)換頭文件
│ └── rotate
│ └── rotate.h # rotate旋轉(zhuǎn)頭文件
├── package.yaml # 編譯配置文件
├── src
│ ├── ugraphics.c # 圖像操作函數(shù)代碼
│ ├── format
│ │ └── to_rgb565.c # rgb格式轉(zhuǎn)換函數(shù)代碼
│ ├── jpegdec
│ │ └── jpegdec.c # 基于libjpeg實(shí)現(xiàn)的圖像解碼實(shí)現(xiàn)
│ └── rotate
│ └── rotate.c # 圖像旋轉(zhuǎn)函數(shù)代碼
└── example
├── image # 測試用例圖片資源文件
└── ugraphics_example.c # 測試用例
依賴組件
SDL2
littlefs
常用配置
def_config: # 組件的可配置項(xiàng)
AOS_COMP_JPEG: 0 # 使能jpeg decoder函數(shù)接口
CONFIG_UGRAPHICS_FORMAT: 0 # 使能format函數(shù)接口
CONFIG_UGRAPHICS_ROTATE: 0 # 使能rotate旋轉(zhuǎn)函數(shù)接口
配置是否支持JPEG解碼、圖像格式轉(zhuǎn)換、圖像旋轉(zhuǎn),默認(rèn)是關(guān)閉的
API說明
暫無說明。
使用示例
組件使用示例相關(guān)的代碼下載、編譯和固件燒錄均依賴AliOS Things配套的開發(fā)工具,所以首先需要參考《AliOS Things集成開發(fā)環(huán)境使用說明之搭建開發(fā)環(huán)境》,下載安裝。 待開發(fā)環(huán)境搭建完成后,可以按照以下步驟進(jìn)行示例的測試。
步驟1 創(chuàng)建或打開工程
打開已有工程
如果用于測試的案例工程已存在,可參考《AliOS Things集成開發(fā)環(huán)境使用說明之打開工程》打開已有工程。
創(chuàng)建新的工程
組件的示例代碼可以通過編譯鏈接到AliOS Things的任意案例(solution)來運(yùn)行,這里選擇helloworld_demo案例。helloworld_demo案例相關(guān)的源代碼下載可參考《AliOS Things集成開發(fā)環(huán)境使用說明之創(chuàng)建工程》。
步驟2 添加組件
案例下載完成后,需要在helloworld_demo組件的package.yaml中添加對組件的依賴:
depends:
- ugraphics: master # helloworld_demo 中引入ugraphics組件
- ili9341: master # helloworld_demo 中引入ili9341屏幕驅(qū)動
def_config:
CLI_IOBOX_ENABLE: 1 # 可選:使能文件系統(tǒng)測試命令,例如ls, ll, mkdir, touch, echo等
步驟3 下載組件
在已安裝了的開發(fā)環(huán)境工具欄中,選擇Terminal -> New Terminal啟動終端,并且默認(rèn)工作路徑為當(dāng)前工程的workspace,此時在終端命令行中輸入:
aos install ugraphics
上述命令執(zhí)行成功后,組件源碼則被下載到了./components/ugraphics路徑中。
步驟4 添加示例
在ugraphics組件的package.yaml中添加example示例代碼:
source_file:
- "example/ugraphics_example.c" # add ugraphics_example.c
build_config:
prebuild_script: cp_resources.py #編譯時cp_resources.py會對資源文件進(jìn)行拷貝,系統(tǒng)自動打包資源文件到littlefs文件系統(tǒng)中
LCD連線使用本測試示例時,請先連接SPI LCD屏幕。
LCD購買鏈接https://item.taobao.com/item.htm?spm=a1z09.2.0.0.768d2e8d9D3S7s&id=38842179442&_u=m1tg6s6048c2
請選擇購買2.4寸屏。
HaaS100開發(fā)板請務(wù)必使用V1.1以上的版本,HaaS100擴(kuò)展口:
LCD與HaaS100接線對應(yīng)pin腳:
步驟5 編譯固件
在示例代碼已經(jīng)添加至組件的配置文件,并且helloworld_demo已添加了對該組件的依賴后,就可以編譯helloworld_demo案例來生成固件了,具體編譯方法可參考《AliOS Things集成開發(fā)環(huán)境使用說明之編譯固件》。
步驟6 燒錄固件
文件系統(tǒng)燒錄本組件例子中使用到圖片存放在代碼中hardware/chip/haas1000/prebuild/data/目錄下ugraphics_image目錄,除燒錄helloworld_demo image外,需燒錄littlefs文件系統(tǒng),請將hardware/chip/haas1000/package.yaml文件中以下代碼段的注釋打開:
program_data_files:
- filename: release/write_flash_tool/ota_bin/littlefs.bin
address: 0xB32000
上述步驟執(zhí)行后,可參考《AliOS Things集成開發(fā)環(huán)境使用說明之燒錄固件》來燒錄固件。
步驟7 打開串口
固件燒錄完成后,可以通過串口查看示例的運(yùn)行結(jié)果,打開串口的具體方法可參考《AliOS Things集成開發(fā)環(huán)境使用說明之查看日志》。
當(dāng)串口終端打開成功后,可在串口中輸入help來查看已添加的測試命令。
步驟8 測試示例
測試步驟:
$ ugraphics init # 初始化ugraphics
$ ugraphics draw {rect|jpg|png|line|string...} # 繪制圖像
測試步驟:
$ ugraphics init # 初始化ugraphics
$ ugraphics draw {rect|jpg|png|line|string...} # 繪制圖像
### CLI命令行輸入:
```shell
ugraphics init # 資源初始化
CLI關(guān)鍵日志:
ugraphics init ok!
CLI命令行輸入:
ugraphics draw rect # 繪制矩形框
CLI關(guān)鍵日志:
ugraphics draw rectangle ok!
CLI命令行輸入:
ugraphics draw jpg # 繪制jpeg圖片
CLI關(guān)鍵日志:
ugraphics draw jpg image ok!
CLI命令行輸入:
ugraphics draw png # 繪制png圖片
CLI關(guān)鍵日志:
ugraphics draw png image ok!
CLI命令行輸入:
ugraphics draw line # 繪制線條
CLI關(guān)鍵日志:
ugraphics draw line ok!
CLI命令行輸入:
ugraphics draw string # 繪制字符串
CLI關(guān)鍵日志:
ugraphics draw string ok!
CLI命令行輸入:
ugraphics fill rect # 填充矩形框
CLI關(guān)鍵日志:
ugraphics fill rectangle ok!
CLI命令行輸入:
ugraphics clear # 清屏
CLI關(guān)鍵日志:
ugraphics clear screen ok!
CLI命令行輸入:
ugraphics quit # 釋放資源
CLI關(guān)鍵日志:
ugraphics quit ok!