读取文字点阵。

【嵌入式】点阵汉字的字模读取与显示 我可以通过读取点阵汉字的字模数据,并结合OpenCV的图像处理功能,实现汉字的显示、识别和处理。随着计算机技术的发展和国际化的需求,机内码已经成为了广泛使用的汉字编码方式,保证了汉字在计算机系统中的准确表示和处理。打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号叠加显示在此图片右下位置。点阵字库的存储方式决定了字库的占用空间和字形的显示效果。 阅读详情

/***********************************************************************************

 *

 * Copyright (C) 2004 Ming Run.

 *

 * This software is provided 'as-is', without any express or implied warranty. In no

 * event will the authors be held liable for (any damages arising from the use of this

 * software.

 *

 * Permission is granted to anyone to use this software for (any purpose, including

 * commercial applications, and to alter it and redistribute it freely, subject to the

 * following restrictions:

 *

 * 1. The origin of this software must not be misrepresented; you must not claim that

 * you wrote the original software. If you use this software in a product, an

 * acknowledgment (see the following) in the product documentation is required.

 *

 * Copyright (C) 2004 Ming Run.

 *

 * 2. Altered source versions must be plainly marked as such, and must not be

 * misrepresented as being the original software.

 *

 * 3. This notice may not be removed or altered from any source distribution.

 *

 ***********************************************************************************/

 

import System;

import System.Drawing;

import System.Windows.Forms;

import NUnit.Framework;

 

package Runmin.Sample

{

    class ImageApplication extends Form

    {

       private var topPanel : Panel           = new Panel();

       private var bottomPanel : Panel        = new Panel();

      

       private var button       : Button      = new Button();

       private var richTextBox  : RichTextBox = new RichTextBox();

       private var textBox      : TextBox     = new TextBox();

 

       public function ImageApplication()

       {

           this("Sample Application.");

       }

 

       public function ImageApplication(caption : String)

       {

           this.Text = caption;

           this.DockPadding.All = 5;

           this.WindowState = 2;

 

           this.Controls.Add(this.topPanel);

           this.Controls.Add(this.bottomPanel);

 

           this.topPanel.Dock          = 5;

          

           this.bottomPanel.Dock       = 2;

           this.bottomPanel.Size       = new System.Drawing.Size(0, 18);

 

           this.button.Dock         = 4;

           this.button.FlatStyle       = 1;

           this.button.Text         = "Process";

 

           this.textBox.Dock        = 4;

           this.textBox.BorderStyle = 1;

           this.textBox.MaxLength      = 1;

 

           this.richTextBox.Dock       = 5;

           this.richTextBox.WordWrap   = false;

           this.richTextBox.Font       = new System.Drawing.Font("Courier New", 8);

 

           this.topPanel.Controls.Add(this.richTextBox);

 

           this.bottomPanel.Controls.Add(this.textBox);

           this.bottomPanel.Controls.Add(this.button);

 

           this.button.add_Click(this.button_Click);

       }

 

       private function button_Click(sender, e : EventArgs)

       {

            var dialog : FontDialog = new FontDialog();

 

            dialog.ShowDialog();

 

            var bitmap : Bitmap = new Bitmap(150, 150);

 

            var graphics : Graphics = Graphics.FromImage(bitmap);

 

            graphics.DrawString(this.textBox.Text, dialog.Font, Brushes.Black, 0, 0);

 

           var result : System.Text.StringBuilder  = new System.Text.StringBuilder();

 

           var x : int = 0;

           var y : int = 0;

 

            for (x = 0; x < bitmap.Width; x++)

            {

                for (y = 0; y < bitmap.Height; y++)

                {

                    if (bitmap.GetPixel(y, x).ToArgb() == 0) result.Append(" ");

                    else result.Append("*");

                }

                result.Append("/n");

            }

 

            this.richTextBox.Text = result.ToString();

       }

    }

}

 

Application.Run(new Runmin.Sample.ImageApplication());

 

C# 转换TTF为GB2312点阵字库 C# 转换TTF为GB2312点阵字库前段时间碰到的一个项目要求在LCD上显示收到的短信,需要12×12的GB2312点阵字库。因为板子上已经放了块W25Q64了,就想着找个字库烧进去。最后虽然是用HZK12,但是总感觉不能释然,于是打算写个用系统字体库来生成点阵字库的工具。 网上有很多有这类的代码,不过我好像没找到我需要的。 思路是这样 遍历GB2312 将汉字绘制到Bitmap 按取模形式提 阅读详情

相关推荐

PHP仿LED点阵,读取字库文字,并转化为二进制输出

<?php $xml=simplexml_load_file("zimu.xml");//导入XML文件,从XML文件里知道需要提取的字体的信息 $font_height=$xml->font->Size_H; //字体高 $font_width=$xml->font->Size_L;//字体宽 $lcdwidth=($xml->num_weight)*16;//屏幕的宽度 $lcdheig

Hello World! 1679

少走弯路:单片机使用点阵字体通过像素化的正确获取

这一改就发现之前的dotpix = img.getpixel((d, i)) 工作不正常,以前是个RGB的像素点,现在居然这个像素点直接返回了0或者1,我靠,一下就猜测可能这次对了。这个问题困扰了好久,尝试过各种方案都无法解决,你们从网上能找到的字符像素化很多都是HZK16这种宋体16号的字库,如果要使用其他楷体,雅黑等等以及不同字号的时候就无解了。前面是RGB模式,后面是P模式,简单的看就是一个锯齿的问题,其实并不是这么简单,因为这其实又涉及到两种图的基本构成,所以并不是简单的锯齿化这个问题。

Sean.Pu的专栏 1857

原创C#实现点阵汉字

原创C#实现点阵汉字

点阵汉字的字模读取与显示

国标码国标码是一个四位十六进制数,它将一个汉字用两个字节表示,每个字节只有7位,与ASCII码相似。

uoyaijsx的博客 1250

canvas创建文字笔画坐标,绘制和识别

是一个demo测试。 使用步骤: 1 创建本地的web服务,把文件移动到web服务的根目录。 2 访问createfont.html,F12切换到移动端模式。 2.1 【必要】 先点击创建字模,这时画布会出现方格(可以在源码里改变jg变量的大小),点击方格的不同位置创建笔画。一定要点击,不要拖动。 2.2 【必要】 点击保存笔画。其实保存的点击的坐标位置数组到本地。 2.3 跳转访问writefont.html 2.4 【可选】 输出笔画,可以看到控制台看到保存的坐标。 3 访问writefont.html,F12切换到移动端模式。 3.1 写字 点击后会把本地的坐标位置数据以点的形式显示在画布上,在某点按下,拖动到另外一点,会把这两点链上。如果过某一点不松鼠标也会链上。 3.2 检测 会检测你所链接的点的是完全和本地位置数组是否一致。只有写字笔划与创建的笔划一样时才为正确,顺序可以不一样。 3.3 撤销 撤销笔画 3.4 识别 访问接口,把画布转图片,上传服务器,服务器调用文字识别接口。可以申请百度的文字识别等。 3.5 返回上一页

汉字提取点阵(很实用的)

本程序主要是针对用液晶显示器显示汉字查找汉字点阵困难而编制的,有了它您将非常容易的得到你所需要的汉字的点阵。本程序是昆虫单片机工作室硬件系列工具之二。本程序包括5种点阵方式,可以根据您不同的液晶显示器数据口线接线不同而变换点阵,满足您的硬件要求。其中汉字包括12*12、16*16、24*24、32*32、48*48等常用大小的汉字点阵。

汉字点阵与OLED屏显学习记录

我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办?于是,就有了点阵。例如:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则1脚接高电平a脚接低电平,则第一个点就亮了。

m0_68927084的博客 2434

汉字点阵字库及读取程序

在单片机液晶中,如何显示点阵汉字,给大家提供了: 1. 含有16X16的标准点阵汉字库 2. 含有读取该点阵字库的C语言程序

【亲测免费】 点阵字库资源及读取代码:打造高效文字显示的利器

点阵字库资源及读取代码:打造高效文字显示的利器 【下载地址】点阵字库资源及读取代码 本仓库提供了一系列常用的点阵字库文件及其对应的读取代码,适用于需要制作点阵文字的项目。字库文件包括HZK12、HZK16、HZK24、HZK32、HZK40、HZK48以及ASC12、ASC16、ASC24、ASC32、ASC48等格式。...

gitblog_09707的博客 923

点阵字库(字模)生成器 V4.0

生成gb2312等字库

DCDC--控制方式(Control Mode)

DCDC反馈控制方式

网始如芯个人博客 1万+

python获取中文字体点阵坐标_Python实现点阵字体读取与转换的方法

点阵字体是指根据文字的像素点来显示的字体,效果如下:使用Python读取并显示的过程如下:根据中文字符获取GB2312编码通过GB2312编码计算该汉字在点阵字库中的区位和码位通过区位和码位计算在点阵字库中的偏移量基于偏移量获取该汉字的32个像素存储字节解析像素字节获取点阵坐标信息在对应的坐标显示信息位。如该像素点是否显示点亮使用该代码前提:下载点阵字体库到本地,这里默认使用的是hzk16点阵字库...

weixin_33636371的博客 753

DDS(Direct Digital Synthesizer)数字频率合成器

随着数字技术在仪器仪表和通信系统中的广泛使用,可从参考频率源产生多个频率的数 字控制方法诞生了,即直接数字频率合成(DDS)。 直接数字合成(DDS)是一种产生模拟波形(通常是正弦波)的方法,它通过产生数字形式的时变信号,然后进行数模转换。由于DDS设备内的操作主要是数字的,它可以提供输出频率之间的快速切换,良好的频率分辨率,并在广泛的频率频谱上操作。随着设计和工艺技术的进步,今天的DDS设备非常紧凑,功耗很小。 上面是比较书面的语言,其实简单地说就是一个信号发生器模块,主要是产生频率可调的三角波正弦波。

denghuajing的博客 4864

Ubuntu 图片上加载文字 (点阵汉字的字模读取与显示)

本文主要介绍汉字的机内码、区位码编码规则和字形数据存储格式及如何在Ubuntu下用C/C++调用opencv库编程显示一张图片,并打开一个名为"logo.txt"的文本文件(其中只有一行文本文件,包括你自己的名字和学号),按照名字和学号去读取汉字24*24点阵字形字库(压缩包中的文件HZKf2424.hz)中对应字符的字形数据,将名字和学号叠加显示在此图片右下位置 目录 一、汉字编码 1.区位码 2.机内码 3.点阵字库 1.利用区位码获取汉字 2.利用汉字机内码获取汉字 二、在图片.

qq_26387811的博客 683

从零到一:ASTER L2数据获取的实战避坑指南

本文提供了一份详细的ASTER L2数据获取实战指南,涵盖账号注册、环境配置、数据检索、下载故障排除及后处理等关键步骤。特别针对NASA EarthData平台的隐形门槛和常见陷阱,给出了实用解决方案,帮助科研新手高效获取地表温度数据,适用于环境监测和城市热岛效应分析等领域。

weixin_29061425的博客 519

CISSP/CCSP证书到手后别松懈!保姆级维持攻略:CPE积分怎么攒?年费怎么交?

本文为CISSP/CCSP持证者提供详细的维持认证攻略,重点介绍如何高效积累CPE积分和避免年费缴纳中的常见问题。通过免费与付费资源结合的策略,帮助持证者轻松完成年度认证要求,同时利用认证创造职业价值。

weixin_30859423的博客 415

python获取中文字体点阵坐标_Python实现点阵字体读取与转换

点阵字体是指根据文字的像素点来显示的字体,效果如下: 使用Python读取并显示的过程如下:根据中文字符获取GB2312编码通过GB2312编码计算该汉字在点阵字库中的区位和码位通过区位和码位计算在点阵字库中的偏移量基于偏移量获取该汉字的32个像素存储字节解析像素字节获取点阵坐标信息在对应的坐标显示信息位。如该像素点是否显示点亮使用该代码前提:下载点阵字体库到本地,这里默认使用的是hzk16点阵字...

weixin_39718521的博客 419

K8s认证文件丢失的应急处理与恢复策略

本文详细介绍了Kubernetes(K8s)认证文件丢失时的应急处理与恢复策略。从快速诊断问题范围到不同场景的临时解决方案,再到深度恢复方案(无损重建、部分重置、完全重建),提供了全面的操作指南。同时强调了生产环境中的防丢失设计、高可用集群的特殊处理以及日常运维建议,帮助运维人员有效应对认证文件丢失的紧急情况。

weixin_33743248的博客 327

读hzk32_最全HZK12,HZK16,HZK24,HZK32,HZK40,HZK48,ASC12, ASC16,ASC24, ASC32, ASC48字库+读取代码...

【实例简介】这几天接了一个项目,需要制作点阵文字,所以接触了字库这东西,由于网上字库挺多的,但是不全,有的字库全,但是字库的读取代码只有一部分,所以还是花费了一天时间搞这东西。现在整理了一份叫全的字体,并配上每种字体的读取代码。【实例截图】【核心代码】字库代码├── fonts│ ├── font_libs│ │ ├── ASC│ │ │ ├── ASC12_8│ │...

weixin_39637700的博客 1161

前端Three.js面试题及参考答案

渲染循环(Render Loop)是 Three.js 中一个非常重要的概念,它是一个不断重复执行的过程,用于更新和渲染 3D 场景。在每次循环中,渲染循环会更新场景中的对象状态,如位置、旋转、缩放等,然后使用渲染器将更新后的场景渲染成 2D 图像显示在屏幕上。通过不断地重复这个过程,就可以实现动画效果。渲染循环的核心作用是确保场景能够实时更新,给用户带来流畅的视觉体验。如果没有渲染循环,场景将是静态的,不会有任何变化。只有通过不断地更新和渲染,才能让场景中的对象动起来,实现各种动画效果。

大模型大数据攻城狮的专栏 2722

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3103
上一篇: JScript.NET建立多线程程序示例。
下一篇: 实在是受购了优快云的论坛,想写个浏览器。
blues-star
博客等级 码龄26年 8粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值