字模

2023-12-10 07:18
文章标签 字模

本文主要是介绍字模,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://bbs.bccn.net/thread-291042-1-1.html
#include <tchar.h>
#include <malloc.h>
#include <windows.h>WINBASEAPI HWND WINAPI GetConsoleWindow();
//
// 把 double 型转换成 FIXED 型数据
FIXED FixedFromDouble(double d)
{long l;l = (long)(d * 65536L);return *(FIXED*)&l;
}// 初始化单位矩阵
BOOL MatrixIdentity(MAT2* pMatrix, double dbZoom)
{if(pMatrix){pMatrix->eM11 = FixedFromDouble(dbZoom);pMatrix->eM12 = FixedFromDouble(0);pMatrix->eM21 = FixedFromDouble(0);pMatrix->eM22 = FixedFromDouble(dbZoom);return TRUE;}return FALSE;
}// 初始化字体
HFONT InitFont()
{LOGFONT lf = { -20, 16, 0, 0, 1, 0, 0, 0,DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH,_T("宋体") };return CreateFontIndirect(&lf);   
}// 打印字符
BOOL PrintCharacter(HDC hDC, UINT ch)
{if(hDC){GLYPHMETRICS gm;MAT2 matrix;DWORD dwSize;// 放大2倍矩阵if(!MatrixIdentity(&matrix, 2.0f)) return FALSE;// 测试需要申请的空间dwSize = GetGlyphOutline(hDC, ch, GGO_BITMAP, &gm, 0, NULL, &matrix);if(dwSize > 0 && dwSize < 0xFFFF){LPBYTE lpBuffer = (LPBYTE)malloc(dwSize);if(lpBuffer){// 获得字形if(GetGlyphOutline(hDC, ch, GGO_BITMAP, &gm, dwSize, lpBuffer, &matrix)){int i, j, k;int nByteCount;// 每行字节数nByteCount = ((gm.gmBlackBoxX + 31) >> 5) << 2;// 遍历行for(i = 0; i < gm.gmBlackBoxY; i++){// 遍历列for(j = 0; j < nByteCount; j++){BYTE code = lpBuffer[i * nByteCount + j];// 遍历位for(k = 0; k < 8; k++){if(code & (0x80 >> k)) _tprintf(_T("+"));else _tprintf(_T(" "));}}_tprintf(_T("\r\n"));}}}free(lpBuffer);return TRUE;}}return FALSE;
}int PrintString(HDC hDC, LPCTSTR pString)
{if(pString){TCHAR* p = pString;while(*p){if(!PrintCharacter(hDC, *p)) break;_tprintf(_T("\r\n"));p += 1;}return p - pString;}return 0;
}int main()
{// 获得当前控制台设备句柄HWND hWnd = GetConsoleWindow();HDC hDC = GetDC(hWnd);HFONT hFont = InitFont();HFONT hOldFont = SelectObject(hDC, hFont);int cnt = PrintString(hDC, _T("FlyingBlue园林"));SelectObject(hDC, hOldFont);DeleteObject(hFont);ReleaseDC(hWnd, hDC);return 0;
}

这篇关于字模的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/476392

相关文章

C++字模软件发送 单片机接收显示

/****先定义数组类型再赋值**L310*********/      /*2014 8 21 10:01**PAST*CODE1000**TEST**/                     #include<reg51.h>                    #define  uint unsigned int                  #define  uch

一个简单的通过excel构筑字模(5X7)可视化的教程及excel工具

首先,将需要的单元格区域(由于我构筑5X7的,是5列,7行)每个单元格拉缩到正方形形状。如图1 图1 先 圈选想要构筑字模显示的区域 然后,所有格填上1或0,点击excel开始栏的条件格式 依次点击突出显示单元格规则,等于 设置等于1的填充浅红色文本(自己选择) 设置完毕,就可以通过填写1来使想要填充像素的区域显示为红色了。 为了方便填写16进制填充的对应映

【自用】ASCii 8*16 点阵字模

TR 自用的不解释 # ASCII 8 * 16 字模, @20231206fonts = {0x000030: # 0[0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00], 0x000031: # 1[0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08

使用PCtoLCD2002提取字模

“模式”---“字符模式” LCD显示,汉字使用宋体还是比较好的,16*16是长、宽都是16个像素显示。

LED点阵显示原理(取字模软件+Keil+Proteus)

前言 写这个的时候我还是有点生气的,因为发现完全按照书上面的步骤来,结果发现不理想,后面还是自己调试才解决了。-_-说多了都是泪,直接进入正文。 软件的操作还是参考我之前的博客。 LED数码管的静态显示与动态显示(Keil+Proteus)-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/134101256?spm=10

关于OLED与LCD的PCtoLCD2002字模参数选择

图片仅供参考,有什么不对的地方,请指出来。谢谢!! OLED LCD