我们采用Genesis增加点阵字时,用Genesis增加Canned Text即可,但奥宝中文不支持,且字符种类是有限的呀

不过没关系,没有自己造呀。在这里我分享一种增加点阵字的实现方法

一.通过代码增加点阵字效果

二.实现代码

        private void button1_Click(object sender, EventArgs e)
{
add Add = new add();
Font font = new Font("宋体", );
Add.text_dot(font, "pcbren共赢加油"); }
        /// <summary>
/// 增加点阵字
/// </summary>
/// <param name="font"></param>
/// <param name="text"></param>
/// <param name="x"></param>
/// <param name="y"></param>
/// <param name="symbols_size"></param>
/// <param name="symbol"></param>
/// <param name="scale"></param>
public void text_dot(Font font, string text = "pcbren", double x = , double y = , double symbols_size = , string symbol = "r", double scale = )
{ y += ;
int txt_space = ;
double txt_sum = ;
foreach (char strt in text)
{
if (strt >= 0x4e00 && strt <= 0x9fbb)
txt_space = ;
else
txt_space = ;
bool[,] data = calc.text_dot_array(font, strt.ToString());
for (int i = ; i <= data.GetLength() - ; i++)
{
for (int j = ; j <= data.GetLength() - ; j++)
{
if (data[i, j])
{
pad(i * scale + txt_sum, y * scale - j * scale, symbols_size, symbol);
}
}
}
txt_sum += txt_space * scale;
}
}
        /// <summary>
/// 计算文字点阵列
/// </summary>
/// <param name="font"></param>
/// <param name="text"></param>
/// <returns></returns>
public static bool[,] text_dot_array(Font font, string text = "pcbren")
{
int array_count = 20;
bool[,] data = new bool[array_count, array_count];
Bitmap bmp = new Bitmap(array_count, array_count);
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White);
g.DrawString(text, font, Brushes.Black, , );
StringBuilder sb = new StringBuilder();
for (int y = ; y < array_count; y++)
{
sb.Append("\r\n");
for (int x = ; x < array_count; x++)
{
if (bmp.GetPixel(x, y).GetBrightness() > 0.5f)
{
sb.Append(" ");
data[x, y] = false;
}
else
{
sb.Append("#");
data[x, y] = true;
}
}
}
return data;
}

最新文章

  1. 装逼名词-ABA CAS SpinLock
  2. 图解Javascript原型链
  3. [Java] Java执行Shell命令
  4. Java多线程开发系列之四:玩转多线程(线程的控制2)
  5. UE4 性能优化方法(工具篇)
  6. hdu 1286:找新朋友(数论,欧拉函数)
  7. Bson
  8. jQuery数组的遍历 function的加载
  9. WEKA使用教程(界面工具的用法)
  10. 构建工具maven
  11. 用background-image做成条纹背景
  12. Java 获取窗口的宽、高
  13. python 使用unittest进行单元测试
  14. Linux下面安装和配置MySQL
  15. iOS-程序启动原理和UIApplication(转载)
  16. npm与gulp的使用
  17. 【LeetCode】12. Integer to Roman (2 solutions)
  18. css常用标签及属性
  19. 第一个c程序和vs2017 在打开MFC rc文件时找不到rcdll.dl
  20. 漂亮的Html5网站

热门文章

  1. LVS部分调度算法的适应场景分析
  2. 初学JSP_内置对象
  3. What is gradle sync in Android Studio?
  4. C# 时间对比
  5. 5.21leetcode练习
  6. 在centOS环境搭建airtest时遇到 Xlib.error.DisplayNameError: Bad display name &quot;&quot; 和Xlib.error.XauthError异常
  7. cad二次开发中各种头的定义
  8. Linux快速入门教程-进程管理ipcs命令学习
  9. js可以随意拖拽的div的实现
  10. POJ 3984 迷宫问题 (BFS + Stack)