字符的点阵显示(模拟户外广告显示屏)
字符的点阵显示
电子科技大学软件学03级02班 周银辉
一, 效果
二 关于C#读取字符点阵的代码
(原理就不再阐述了,到Baidu里面搜一下,很多,不过一般都是C/C++的)
(说明:对于一个字符,GetWordLattics函数返回的bool[,]表示一个16*8或16*16点阵,对应值为true表示该点应该被点亮)
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace ShowWord
{
/**//// <summary>
/// 字符解析器
/// </summary>
public class WordPaser
{
private static byte[] bytesOfASC;
private static byte[] bytesOfHanZi;
private static string pathOfASC = Application.StartupPath + Path.DirectorySeparatorChar + "ASC16";
private static string pathOfHanZi = Application.StartupPath + Path.DirectorySeparatorChar + "HZK16";
static WordPaser()
{
try
{
bytesOfASC = File.ReadAllBytes(pathOfASC);
bytesOfHanZi = File.ReadAllBytes(pathOfHanZi);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/**//// <summary>
/// 获取指定的字符的点阵
/// </summary>
/// <param name="c">字符</param>
/// <param name="lines">点阵行数</param>
/// <param name="columns">点阵列数</param>
/// <returns>点阵数据,对应值为true表示该点应该被显示,否则对应点不应该被显示</returns>
public static bool[,] GetWordLattics(Char c, out int lines,out int columns)
{
lines = 16;
columns = 8;
bool[,] lattics = new bool[lines, columns];
int intValue = (int)c;
long offset = 0;
if (intValue <= 255)
{
offset = intValue * 16L;
for (int i = 0; i < lines; i++)
{
for (int j = 0; j < columns; j++)
{
byte byteValue = bytesOfASC[offset + i];
lattics[i, j] = ((byteValue >> (7 - j)) & 0x1) != 0;
}
}
}
else
{
lines = 16;
columns = 16;
lattics = new bool[lines, columns];
byte[] bytes = System.Text.Encoding.GetEncoding("gb2312").GetBytes(c.ToString());
int zone = bytes[0];//刚好是“区”的值,机内码
int num = bytes[1];//刚即时“位”的值 ,机内码
int area = (zone & 0x00ff) - 0xa0; //根据机内码取得区码
int bit = (num & 0x00ff) - 0xa0; //根据机内码取得位码
offset = (94 * (area - 1) + (bit - 1)) * 32L;
for (int i = 0; i < lines; i++)
{
for (int j = 0; j < 2; j++)
{
for (int k = 0; k < 8; k++)
{
byte byteValue = bytesOfHanZi[offset + i * 2 + j];
lattics[i,8 * j + k] = ((byteValue >> (7 - k)) & 0x1) != 0;
}
}
}
}
return lattics;
}
}
}
3 字库文件下载
代码中用到的两个字库文件(或者你可以在TurboC安装目录下中找到他们) http://files.cnblogs.com/zhouyinhui/zk.rar
转载于:https://www.cnblogs.com/zhouyinhui/archive/2006/11/28/575545.html
字符的点阵显示(模拟户外广告显示屏)相关推荐
- linux字符点阵,ASCII 字符的点阵显示
来源:百问网 作者:韦东山 本文字数:2108,阅读时长:4分钟 要在 LCD 中显示一个 ASCII 字符,即英文字母这些字符,首先是要找到字符对应的点阵.在 linux 内核源码中有这个文件:li ...
- 从我国户外广告行业现状看其未来走向选择
2013年5月,国家广告研究院联合中国商务广告协会OOH传播研究院.央视市场研究公司.艾瑞咨询集团共同发布<2013户外移动数字媒体发展趋势蓝皮书>.该<蓝皮书>指出,户外广告 ...
- 8乘8led点阵显示数字_基于51单片机的8乘8LED点阵显示屏的设计
1 基于单片机的 8*8LED 点阵显示屏的设计 随着单片机在各个领域的广泛应用,许多用单片机作控制驱动 LED 显示屏也应运产生.本系统设 计使用单片机 MCS-51 控制扫描方法实现 LED 点阵 ...
- LED点阵显示,有关特殊国别(阿拉伯,希伯来,泰文)字符排版和乱码问题解决
序:最近公司的需求:做一个模拟LED屏的显示控件 中间各种曲折!此文做个记录,本来早就改写完的!各种原因前后隔了两个多月! 文章写的比较详细,熟悉的大佬可以跳过直接看代码! PS:后面有完整的代码 正 ...
- ASCII字符点阵和汉字库点阵显示
字符编码方式有ASCII,GBK和Unicode等,ASCII编码方式用 1 byte来表示一个字符,ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符.标准ASC ...
- 51单片机教程:8*8 点阵显示字符、数字、简单汉字
点阵显示实验 一.什么是点阵? 我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办呢,于是就有了点阵. 8X8点阵共由64个发光二极管组成,且每个发光二极管是放 ...
- LED显示屏给户外广告带来更多精彩
LED依然是个热门的话题,但是LED照明并没见到有什么好的发展.依然是依靠政府扶持,还没有真正的走进普通家庭.各地的LED展会相继开展,由此可见LED火热是个伪命题啊,真正火起来的是LED显示屏,LE ...
- c语言 gbk字模点阵数组,GBK点阵显示字库的制作和使用
GBK编码共收录汉字21003个.符号883个,并提供1894个造字码位,简.繁体字融于一库.以两个字节表示一个汉字,编码范围是0x8140~0xfefe,兼容GB2318,并覆盖了unicode中的 ...
- led显示屏建设标准_户外LED显示屏3大防护标准_显示屏应对恶劣天气?
户外LED显示屏是现在LED显示屏应用最棺广泛的领域.面积巨大,显示效果震撼.同时为了更好的宣传效果,通常安装余楼顶,道路等空旷无遮挡地带.由于面积大且处于露天状态,LED显示屏面临巨大的环境挑战.经 ...
最新文章
- Gin 框架学习笔记(03)— 输出响应与渲染
- hadoop1.2.1伪分布模式安装教程
- Spring Boot 集成 Swagger 生成 RESTful API 文档
- LeetCode 213 House Robber II Python
- Android多个imei如何获取,如何在Android 10中获取IMEI号,这是获取在Android 10及以下Android 10中获取IMEI号的代码...
- pytorch安装教程(Windows版本)
- 启动hive报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang
- JMeter正则表达式-学习(3)
- Android显存到内存拷贝耗时,memcpy速度太慢?掌握这个技术让内存拷贝效率成倍提升...
- html汉字在ie11中乱码,你好 我电脑 IE11 网页下拉的键都变成的中文乱码 例如“马夬”“邢”之类的中文乱码...
- firefox火狐集成idm
- 虚拟人的手工前世和AI今生
- bm3d算法matlab,BM3D算法实现图像降噪.doc
- nginx错误502,503,504分析
- 成为技术传播者(二):Why and Why NOT
- 基于STM32:情侣互动玩偶(设计方案+源码+3D图纸+AD电路)
- 核函数(Kernels)
- 蓝桥杯 调和级数 Java
- CCNP-第十九篇-ISIS(二)
- 1、野火freertos学习笔记
热门文章
- [JAVA]deep copy链表
- python学习第一周(1)
- Beyond Compare进行内容替换的方法有哪些
- 解决在Ubuntu下打开txt文件乱码的问题
- jQuery 入门教程(1): 概述
- DIV+CSS如何设置字体间距
- 【android】【git】Android源代码获取(Windows)
- Larbin简介,及其在Ubuntu10.04下的编译安装
- python爬虫(五)_urllib2:urlerror和httperror
- 对象存储/编码/解码