博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【STM32 .Net MF开发板学习-04】TinyGUI位图显示
阅读量:7126 次
发布时间:2019-06-28

本文共 1569 字,大约阅读时间需要 5 分钟。

上一篇博文《

 由于目前Cortex-M3的芯片主频较低,所以为了加快位图的显示,引进了TinyBMP位图格式,该格式其实很简单,一个文件头,数据内容和LCD显存的数据完全一致。

 为了便于常见的图片转换为TinyBMP,我开发了一个转换工具,程序很简单,一般设定好转换后的图片大小后,直接保存即可。

 

(该工具在本示例源码压缩包中)

 TinyBMP可以存放在资源中,也可以存放在Flash上,但是存放在资源中有一个弊端,就是资源的大小受RAM的限制,因为TinyCLR加载应用程序时,会把所有的资源都加载到内存中去。而存放在Flash上没有这个限制,只要你一次显示的图片不大于限定的RAM即可,这样只要Flash足够大,你就可以存放和显示足够多的图片。

 这边我写了一个位图显示示例,就采用了这两种方式。

 

转换后的图片加载到资源中。

 

YFAccessFlash工具下载要显示的位图(一次下载多幅)。

程序代码如下:

using System;

using Microsoft.SPOT;

using System.Threading;

using System.TinyGUI;

namespace TinyGUI_BMP

{

    public class Program

    {

        public static void Main()

        {

            Graphics.Clear(Color.Black);

            Graphics.FillRectangle(0, 0, 240, 30, Color.DarkGray);

            Graphics.DrawString(25, 8, ".Net Micro Framework"Color.LightGreen);

            //显示资源中的图片

            Graphics.DrawImage(70, 110, Resources.GetBytes(Resources.BinaryResources.YeFan));

            Thread.Sleep(3000);

            //显示Flash中的图片

            int i = 0;

            uint offset_Addr = 0x002A0000;   //Custom区在Flash中的偏移地址

            byte[] bytData=new byte[0x960C]; //TinyBMP图片大小,四个都一样

            Graphics.FillRectangle(0, 0, 240, 30, Color.DarkGray);

            Graphics.DrawString(60, 8, "TinyGUI Test"Color.Yellow);

            while (true)

            {

                if (++i> 3) i = 0;

                AccessFlash.Read((uint)(offset_Addr + i * bytData.Length), (uint)bytData.Length, bytData);

                Graphics.DrawImage(40, 100, bytData);

                Thread.Sleep(200);

            }

        }

    }

}

需要注意的是,程序除了引用System.TinyGUI.dll库,还需引用AccessFlash.dll库,这个库是我自行开发的,可以非常方便的在.Net MF应用程序中读写Flash的所有数据。

程序运行后的结果如下:

 

-----------------------------------------------------------------------------------------

 

【低价开发板】
 

 

源码下载:
文章参考: 《

 

中文讨论组:
本文转自yefanqiu51CTO博客,原文链接:
http://blog.51cto.com/yfsoft/343818
,如需转载请自行联系原作者
你可能感兴趣的文章
ASP.NET分页组件
查看>>
动态规划
查看>>
Android webview使用详解
查看>>
Confluence 6 配置白名单
查看>>
input标签内容改变的触发事件
查看>>
Zabbix 监控问题总结 (3.0)
查看>>
Elasticsearch 集群优化篇
查看>>
Chris Dixon谈体验经济的崛起,及其对创业公司的重要性
查看>>
ecshop模板商品详情页显示供货商
查看>>
搜索引擎优化的10条军规矩
查看>>
YII之yiic创建YII应用
查看>>
MySQL引擎
查看>>
入门级Ibatis案例
查看>>
LeetCode:Rectangle Area - 矩形交叉部分的面积
查看>>
研究开源OpenWnn Android输入法源代码
查看>>
下拉列表
查看>>
Visual Studio 11 Beta 带来新的Metro 应用开发体验
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Android 打开高德地图和百度地图
查看>>