如何得到某种字体下指定大小某字符的点阵?

lqfellow 2006-01-10 02:08:45
想做一个点阵字库生成工具,如何得到某种字体中指定大小的字符的点阵?比如16*16。请大虾提供思路,谢谢!
...全文
194 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flowercity 2006-01-10
  • 打赏
  • 举报
回复
呵呵
楼上抢我饭碗啊
^_^
开玩笑的
lqfellow 2006-01-10
  • 打赏
  • 举报
回复
Thanks Netsys2 and another friend!



===============网海浪花==============

分享代码是一种美德!

=====================================

netsys2 2006-01-10
  • 打赏
  • 举报
回复
Q : ◆ 怎样提取汉字的点阵值 ◆ 一个32*32的汉字,怎样编程获取它点阵值? 以0表示空白,1表示有点,以HEX形式存储。
主要解答者: jishiping 提交人: netsys2
感谢: hdaq
审核者: Aweay 社区对应贴子: 查看
A :

Graphics::TBitmap* Bmp;
Bmp = new Graphics::TBitmap;
Bmp->Monochrome = true; //黑白2色图形
Bmp->Width = 32; Bmp->Height = 32;
Bmp->Canvas->Font->Name = "宋体";
Bmp->Canvas->Font->Charset = GB2312_CHARSET;
Bmp->Canvas->Font->Height = -32;
Bmp->Canvas->Brush->Color = clBlack; //之前这儿前面少了Bmp->
Bmp->Canvas->Rectangle(0, 0, 32, 32); //用黑色填充图形
Bmp->Canvas->Font->Color = clWhite; //字的颜色为白色
Bmp->Canvas->TextOut(0, 0, "字"); //在图形上输出“字”,这样就
//得到了“字”的 32*32 的点阵
//下面的方法判断32×32点阵的每个点的颜色
for(int y=0; y<32; y++) {
BYTE bMask = 0x80; //之前这儿多了一个*
BYTE* pData = (BYTE*)Bmp->ScanLine[y];
for(int x=0; x<32; x++,bMask>>=1) {
if (bMask == 0) {
bMask = 0x80; pData++;
}
if (*pData & bMask)
; //点阵的 (x,y) 颜色为白色
else
; //点阵的 (x,y) 颜色为黑色
}
}
delete Bmp;
flowercity 2006-01-10
  • 打赏
  • 举报
回复
以前我用vb做过一个程序
回家给你找找还在不在
不在就完蛋了
呵呵

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧