通用点阵字库生成工具
虽然点阵提取工具,网上有很多了,但是找来找去,没找到我满意的工具,于是自己写了一个小工具。
点阵字体,在嵌入式GUI开发中,用得也是非常频繁的。
主要有两种使用场景:
1.生成某种编码的全部点阵,以BIN的形式放在FLASH中加载。
2.生成部份文字的点阵,以C文件的方式,写在代码里。
本工具的特点:
1.完全免费,不用到处找破解工具;
2.通用性好,支持任意编码,任意语言,可以自定义编码;
3.可以生成BIN和C文件;
4.可以使用WINDOWS全部字体;
5.使用方便,界面整洁;
界面效果图:
作者:星沉地动
//————————————————————————————————————————-
2017.09.02 (V1.1)
添加高位在前和低位在前的选项;
调整预览界面;
下载地址1:http://446252221.ys168.com/ (我的工具/通用点阵提取工具V1.1.zip 247KB)
下载地址2:https://pan.baidu.com/s/1kVBUGbt
//————————————————————————————————————————-
2017.09.15
公开此工具源代码:
https://github.com/Jiangxiaogang/FontMaker
//————————————————————————————————————————
2017.10.12(V1.1.2)
优化输出C文件数据格式;
下载地址1:http://446252221.ys168.com/ (我的工具/通用点阵提取工具-V1.1.2.zip 247KB)
下载地址2:https://pan.baidu.com/s/1geZ51rt
常见问题:
1.如何使用其它标准字符集?
在软件目录下有一个”charset”文件夹,程序启动的时候会扫描该文件夹下面的*.cst文件,并加入标准字库列表中;
cst文件就是码表文件,每个CST文件代表一种字符编码表,CST文件的数据格式为字符集中所有字符的UNICODE编码,2字节为一个单位,低字节在前。
该文件夹下面有一个“charset.exe”的程序,可以方便地生成大多数标准码表.
2.字符集中的“用户定义”是什么意思?
使用非标准字符集的使用可以使用自定义码表,比如简体中文的编码是GB2312,有6000多文字,但如果实际项目中你只想要“中华人民共和国”这7个汉字,
就可以在输入框中输入你需要的文字,生成一个特殊应用的字库,当然这个字库中的文字的排列顺序与你输入的顺序保持一致。
3.如何使用生成的BIN文件?
本工具生成的BIN数据格式为最常用的数据格式,一般情况下兼容其它字库文件;
对于水平扫描方式,8bit对齐格式,比如12x12像素的字库,每一行有12个点,但是会占用16bit即2个字节来表示;
那么一个文字占用2x12=24字节,读取BIN的时候以24字节为单位读取即可;
4.生成BIN文件与生成C文件有什么区别?
BIN文件一般用在通过文件读取字库,C文件是嵌入到代码里的数据。
5.为什么有很多字体的中文文字看上去是一样的?
这是因为Windows自带的字体,大多数都不是中文字体,当显示中文的时候,系统会自动映射到默认的中文字体来显示,比如“宋体”,
宋体是使用点阵最清晰,最常规的字体,推荐使用宋体来做中文字库。
转载 :
https://blog.csdn.net/qq446252221/article/details/53188278
源码:
https://download.csdn.net/download/wowocpp/10513893
最好是用vs2010 打开
void CBitFont::UpdateBitmap(void)
{HBITMAP hBitmap;BITMAPINFO bmi;ZeroMemory(&bmi,sizeof(bmi));bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);bmi.bmiHeader.biWidth = m_nWidth;bmi.bmiHeader.biHeight = m_nHeight;bmi.bmiHeader.biPlanes = 1;bmi.bmiHeader.biBitCount = 8;bmi.bmiHeader.biCompression = BI_RGB;hBitmap = ::CreateDIBSection(m_hdc,&bmi,DIB_RGB_COLORS,(void**)&m_pPixels,NULL,0);if(hBitmap != NULL){if(m_hBitmap != NULL){::DeleteObject(m_hBitmap);}::SelectObject(m_hdc,hBitmap);m_hBitmap = hBitmap;}
}CBitFont::CBitFont(void)
{HDC hdc;m_nOffsetX = 0;m_nOffsetY = 0;m_nWidth = 1;m_nHeight= 1;m_hBitmap = NULL;hdc = ::GetDC(NULL);m_hdc = ::CreateCompatibleDC(hdc);::ReleaseDC(NULL,hdc);::SetTextColor(m_hdc,RGB(255,255,255));::SetBkColor(m_hdc,RGB(0,0,0));
}void CBitFont::PaintFont(WCHAR ch)
{RECT rc;SetRect(&rc,0,0,m_nWidth,m_nHeight);::FillRect(m_hdc,&rc, (HBRUSH)GetStockObject(BLACK_BRUSH));::TextOut(m_hdc,m_nOffsetX,m_nOffsetY,&ch,1);
}
这个里面的CreateDIBSection 的作用是什么?
CreateDIBSection 与m_hdc 结合之后,在m_hdc 中绘图,数据会实时的反应到CreateDIBSection 返回的hBitmap 中去吗?
通用点阵字库生成工具相关推荐
- 如何将字库生成工具生成的 .DZK/ . bin格式的文件转成.c格式文件
如何将字库生成工具生成的 .DZK/ . bin格式的文件转成.c格式文件 在我们项目开发的过程中,特别是做界面显示的时候,经常会遇到如 :多国文字点阵字库生成器TS3等软件其生成的.DZK格式文件, ...
- 【DataProcessor】简易的通用多进程数据生成工具类(Advanced for HVD)
0x00 前言 基于先前实现的Python多进程共享内存队列实现的SMQueue(原文地址), 认真思考了一下,虽说prototype类的东西写起来很酷,但无法产生太大的使用价值, 为了方便调用和扩展 ...
- C# 转换TTF为GB2312点阵字库
C# 转换TTF为GB2312点阵字库 前段时间碰到的一个项目要求在LCD上显示收到的短信,需要12×12的GB2312点阵字库.因为板子上已经放了块W25Q64了,就想着找个字库烧进去.最后虽然是用 ...
- STM32点阵字库-ASII字符集
STM32点阵字库-ASII字符集 Fang XS. 1452512966@qq.com 如果有错误,希望被指出 前言 STM32使用LCD显示时,使用带字库的LCD可以直接用.但是项目上,可能需要多 ...
- DW字库生成以及ts3使用
1. 16级灰度字库生成工具 灰度字库字体边缘使用灰度色阶补偿,生成的字体显示流畅,无锯齿,且一个字库可包含不同字体,避免多个 字库占用较多字库空间. 点击16级回复字库生成工具,在字库生成软件中选择 ...
- ffmpegguitool下载不了_MTK点阵字库(BDF) 生成工具GuiTool1.10
v1.06 (20120410) FontMaker(点阵字库) 1. 增加系统字体支持,操作更简单,快捷. v1.05 (20120324) FontMaker(点阵字库) 1. 修正了字符对齐问题 ...
- ffmpegguitool下载不了_-非等宽unicode 点阵字库工具(GuiTool)下载1.06 -旋风软件园...
v1.06 (20120410) FontMaker(点阵字库) 1. 增加系统字体支持,操作更简单,快捷. v1.05 (20120324) FontMaker(点阵字库) 1. 修正了字符对齐问题 ...
- DGUS屏如何实现超大点阵字库显示?
有个别需求要实现超大的汉字显示,DGUS屏内部字库空间比较小,一个大点阵全编码字体占用的空间太大,甚至有时候生成超过了32M,对于其他字库空间需要利用的就非常不方便,而且点阵越大生成字库特别浪费时间. ...
- ARM实验板移植,linux点阵字库的使用
不说原理,只讲步骤.包括所有自用包以及实验中遇到问题的解决办法. 想知道HZK16原理的直接搜关键词:HZK16汉字16*16点阵字库的使用 XMware:(14条消息) 小白如何在window电脑上 ...
- 点阵字库生成器破解版下载地址
本工具可以生成/编辑任意大小的点阵字库.源字体取自于Windows的TTF字体,可添加生僻汉字,嵌入式小系统开发必备软件. 华为网盘统一提取密码为52coder 下载地址:http://s.dbank ...
最新文章
- [转]苹果iOS 5限制应用本地存储问题
- nfc pm3 模拟加密门禁卡_华为手机NFC的妙用,模拟门禁卡、公交卡、银行卡,电子证件等...
- Navicat for Oracle实现连接Oracle
- OC中数组排序的3种方法
- 【数据结构与算法】之深入解析“UTF-8编码验证”的求解思路与算法示例
- 简单入门——深度学习笔记(Part II)
- python代理charles_Mitmproxy + Python 做拦截代理
- [html] html的img标签为什么要添加alt属性呢?
- Ubuntu部署Java项目
- 计算机丨浏览器访问出现DNS_PROBE_POSSIBLE解决方法
- PCL三维点云拼接融合
- Android 客户端上开发人人客户端系列教程
- 上海产品运营招聘面试技巧分析
- 微信朋友圈能评论表情包了,来斗图啊!
- 七夕情人节表白网站代码 3D流星雨旋转相册 程序员专属情人节表白网站
- ye321片库_jQuery的简约幻灯片库
- jQuery ajax请求两次问题,jquery ajax请求了两次问题
- 小白记录:1、scrapy的基础操作
- 人生理财规划必备的“四笔钱”,你知道吗?
- 性能指标:队列深度、IOPS与时延