摘要:本文将以Pixman Demo为例,详细说明Pixman的功能。

本文分享自华为云社区《LiteOS组件尝鲜—玩转Pixman》,作者:Lionlace。

基本介绍

Pixman是由三星工程师开发的像素操作库,广泛应用于矢量图形CarioX服务器等。它能够提供低级像素处理能力,同时具备图像合成、图形变化以及光栅化等功能。本文将以Pixman Demo为例,详细说明Pixman的功能。

Demo实现功能的步骤:新建一个宽高为20*20的像素图片,将目标图片划分为410*10的区域。第一个区域填充蓝色,第二个区域填充蓝粉渐变色,第三个区域填充径向渐变色,第四个区域填充圆形渐变色,最后输出图形到pixman.png即可。下面将介绍详细步骤。

Demo实现的环境要求

Demo需要FATFS文件系统和LIBPNG支持,可在已支持该文件系统的开发板上运行,目前已适配STM32F769IDISCOVERY开发板。

使能Pixman Demo

拷贝并重命名配置文件

在LiteOS源码根目录下根据实际使用的开发板,拷贝tools/build/config/目录下的默认配置文件${platform}.config到根目录,并重命名为.config。以Linux系统和STM32F769IDISCOVERY开发板为例,在LiteOS源码目录下,执行如下命令完成配置文件的拷贝和重命名:

cp tools/build/config/STM32F769IDISCOVERY.config .config

使能Pixman Demo

LiteOS源码根目录下运行make menuconfig命令,按如下菜单路径使能Pixman Demo

Demos    --->Media Demo    --->[*] Enable Pixman Demo (NEW)

使能Pixman Demo后,会自动使能其依赖的Pixman组件、Libpng组件及FATFS文件系统并设置SD卡模式。本Demo中的文件就保存在SD卡中。保存退出menuconfig后,LiteOS会从github上自动下载Pixman源代码,并从gitee的LiteOS组件仓库LiteOS_Components下载对应的patch包,并打入patch。

关于组件下载的详细流程请参考:https://gitee.com/LiteOS/LiteOS_Components#%E5%9C%A8%E7%BA%BF%E7%BB%84%E4%BB%B6%E4%B8%8B%E8%BD%BD%E6%B5%81%E7%A8%8B

注:下载需要Linux主机可以访问互联网,并安装git工具。如果使用LiteOS Studio使能该Demo,需要在组件配置中手动设置FATFS文件系统为SD卡模式。

编译运行Pixman Demo

操作步骤如下:

  • SD卡插入开发板的卡槽内;
  • 参照上述步骤使能Pixman Demo
  • 在LiteOS源码目录下执行make clean ; make -j命令编译LiteOS工程,编译成功后将在out/${platform}/lib目录下生成Pixman的库文件libpixman.aLibpng的库文件libpng.a和本Demo的库文件libpixman_demo.a,系统镜像文件为Huawei_LiteOS.bin。以STM32F769IDISCOVERY开发板为例,其目录就是out/STM32F769IDISCOVERY
  • 烧录系统镜像文件到开发板,复位后可以看到串口输出Demo运行结果如下所示。
********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.0.0
build data : May 14 2021 16:05:30
**********************************
osAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!
File system mount success.
Pixman demo task start to run.
Pixman demo task finished.
Huawei LiteOS #
  • 查看SD卡根目录,可以看到生成的图片文件为pixman.png。

至此,该Demo实现功能就完成了。

结语

未来我们还会持续新增更多组件、开发板、架构、特性等。

感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:https://gitee.com/LiteOS/LiteOS/issues

为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如图所示。

更多学习内容,请关注IoT物联网社区

点击关注,第一时间了解华为云新鲜技术~

一起玩转LiteOS组件:Pixman相关推荐

  1. 玩转LiteOS组件:玩转Librws

    本文分享自华为云社区<LiteOS组件尝鲜-玩转Librws>,作者: W922  . 本期小编为大家带来LiteOS开源版本Librws 组件的使用说明,请跟随小编的步伐一起进入探索之旅 ...

  2. 快来一起玩转LiteOS组件:Curl

    本文分享自华为云社区<LiteOS组件尝鲜-玩转Curl>,作者:W922. 基本介绍 Curl是一个文件传输工具,常用于数据上传和下载,本demo基于Cloud_STM32F429IGT ...

  3. 一起玩转玩转LiteOS组件:Opus

    摘要:Opus编码器是一个开源的有损声音编码格式,适用于网络实时声音传输,标准格式为RFC 6716,相对于其他编码格式来说,保真性更好. 本文分享自华为云社区<LiteOS组件尝鲜-玩转Opu ...

  4. 快来一起玩转LiteOS组件:RHas

    摘要:RHash是一个C语言编写的哈希函数库,用于计算和验证磁力链接和各种消息摘要的控制台实用程序. 本文分享自华为云社区<LiteOS组件尝鲜-玩转RHas>,作者:Lionlace . ...

  5. 手把手带你玩转LiteOS Ping组件

    摘要:本期小编为大家带来LiteOS开源版本Ping组件的使用说明,请跟随小编的步伐一起进入探索之旅吧! 本文分享自华为云社区<LiteOS组件尝鲜-玩转Ping>,作者:Lionlace ...

  6. 带你尝鲜LiteOS 组件EasyFlash

    摘要:EasyFlash是一个开源的轻量级嵌入式闪存库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转EasyFlash>,作者:Lionlace . 基本介绍 EasyFlash是一 ...

  7. 一分钟带你了解Huawei LiteOS组件开发指南

    摘要:本文将基于Huawei LiteOS系统,从组件定义开始带你走进组件开发指南. 本文分享自华为云社区<一分钟带你了解Huawei LiteOS之组件开发指南>,作者: Lionlac ...

  8. vue - 组件的创建

    组件的创建 vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例中使 ...

  9. 闲鱼玩法平台系列文章——双11实操篇

    背景 营销玩法是电商行业进行商品促销和用户增长的重要手段,上一篇中介绍了闲鱼的玩法平台--多啦A梦,本篇将介绍在该系统上承接的玩法.闲鱼作为闲置循环工厂也参与了大促,为了让更多闲置在闲鱼游起来,在商品 ...

最新文章

  1. 机器视觉_Java机器学习,第2部分
  2. Markdown编辑表格时如何输入竖线('|', pipe,vertical bar)
  3. 回顾 | Alibaba Cloud Native Day 杭州场圆满结束(附 PPT 下载)
  4. gsm,gprs,cmwap,cmnet,3g,TD-SCDMA,CDMA2000,WCDMA
  5. 传统公司部署OpenStack(t版)简易介绍(二)——Keystone组件部署
  6. python用法查询笔记_Python学习笔记 - 2 - PyCharm的基本使用
  7. BZOJ1179 Atm //缩点+spfa
  8. 时代聚焦AI安全——可解释性
  9. 【渝粤教育】国家开放大学2019年春季 1161开放英语3 参考试题
  10. stc8g1k08程序范例_通过WiFi对STC单片机程序下载和调试
  11. MySQL为什么用 B+ 树,不用 B 树?
  12. 大文件分片上传前端框架_无插件实现大文件分片上传,断点续传
  13. Okio 1.9简单入门
  14. Obective-C之宏定义
  15. 【Strurts框架】第一节Action-通配符
  16. PHP如果查询结果为空,php – 如果子查询的结果为NULL,则整个查询失败
  17. 课程设计思路-学习笔记
  18. AOP-Chap27-Balanced BSTs
  19. Atmega16驱动三轴加速度传感器MMA7455
  20. 「缠师课后回复精选」第14课: 喝茅台的高潮程序!

热门文章

  1. eff java_Perl 6,EFF的阅读和观看列表以及更多开源新闻
  2. HTML5 Canvas中绘制文本
  3. CSS两栏布局之左栏布局
  4. 广东计算机学会 信息学省初赛,报名丨2019第36届全国信息学奥林匹克竞赛于广州二中举办!...
  5. ROS Rviz 显示地图 Python
  6. 先验、后验、似然、置信的理解
  7. 安装并配置oracle11g,ORACLE11g 安装于基本配置说明
  8. c语言文件归并问题_通知:土地有变!土地归并:每亩补9万?明年起:合村并镇!能否启动?1个好消息!...
  9. 自学编程的人,都是怎么找到自己的第一份工作的?
  10. PAT-乙级-1034 有理数四则运算