【问题标题】:forming letters out of binary arrays从二进制数组中形成字母
【发布时间】:2014-07-23 00:20:58
【问题描述】:

我需要创建一个函数,它接收一个字母数字字母作为参数并返回一个 NxM 大小的二进制数组,其中 1 和 0 将构成给定的字母。

例如,对于字母 A 和 B,数组可能如下所示:

00000110000    11111111100
00001001000    11000000011
00011001100    11000000011
00111111100    11111111110
01100000110    11000000011
11000000011    11000000011
11000000011    11000000011
11000000011    11111111111

提示:如果你睁大眼睛,你可以更好地看到字母

我知道如何做到这一点的唯一方法是手动为每个字符创建数组并将它们插入到 switch-case 中。这看起来非常沉闷和不专业。

有人有更好的主意吗?

【问题讨论】:

  • +1,问题说得很清楚,他是在征求意见,而不是“为我写代码”。
  • 将字符渲染成图像(最好是单行距字体)。比检查像素颜色(黑色 = 1,白色 = 0)。如果要显示多个字符,请将整个文本呈现为图像并相应地分隔。
  • @Heinzi,这似乎不是一个可以回答的问题,只能讨论。 -1
  • @paqogomez:CSharpie 的建议(将等宽字体的字符渲染为位图并将位图转换为数组)对我来说听起来像是一个合适的答案。总的来说,我确实认为“有更优雅的方式来做 X 吗?”问题是这里的主题。 (看看那些“我可以用 LINQ 做 X 吗?”的问题,如果你需要赞成的例子。)
  • AlexandruSeverin,我没有不尊重的意思。 @Heinzi 和我对这么广泛的问题是否可以得到足够好的回答以产生效果有不同的看法。就我而言,我更喜欢看更多的代码。不过,我确实喜欢 CSharpie 对这个问题的看法。我认为它与您可以提出的问题一样具体。

标签: c# arrays


【解决方案1】:

我已经回答了类似的问题here

那里的 OP 想画圆圈作为他的“自定义像素”。

这个想法是在(不可见的)位图上以您喜欢的大小和字体绘制您想要的字符,然后从中读取设置的像素并将它们写入您的“自定义像素”,即您的数字。

这听起来可能有点吓人,但是如果您查看提供的代码,您会发现它确实相当简单,而且效果很好!

【讨论】:

    【解决方案2】:

    在这里,OCR 算法(光学字符识别)非常有用。

    您可以按照已经建议的方式创建一堆像素,然后使用这种算法。

    如果您需要已经存在的东西:http://digit.lk/optical-character-recognitionocr-in-c/ 或试试这个:http://www.codeproject.com/Articles/476142/Optical-Character-Recognition

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 2021-12-09
      • 2019-11-09
      • 1970-01-01
      • 2014-12-26
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多