【问题标题】:Producing ascii art via C#通过 C# 生成 ascii 艺术
【发布时间】:2011-03-27 01:18:01
【问题描述】:

我曾经为一份工作做过编程测试,其中涉及用 C# 制作 ASCii 艺术作品。我在这方面做得并不好,因为我对用 C#(或任何编程知识)做这件事没有什么想法或经验。

.NET 中是否有任何值得了解/练习的资源或类?

【问题讨论】:

  • 你的意思是像用 c# 程序将图像转换为 ascii 艺术?
  • 您必须定义 ASCII 艺术的含义。如果您可以只渲染 1 位图像,或者您可以将每个字符着色为 24 位,那么想出答案可能要简单得多。如果您必须使用较小的调色板来表示 24 位彩色图像,或者您必须使用一种颜色来表示灰度,则可能会更复杂,您可能不得不求助于其他人已经给出的答案给定的。你在找哪个?
  • 我认为这是一个非常愚蠢的面试问题......它并不能真正证明你的技能。所以,如果你没有得到这份工作,不要感觉太糟糕;)

标签: c# ascii-art


【解决方案1】:

阅读这篇文章 http://www.c-sharpcorner.com/UploadFile/dheenu27/ImageToASCIIconverter03022007164455PM/ImageToASCIIconverter.aspx

它允许您上传将转换为 ASCII 艺术的图像 :) 非常酷的东西。

CodeProject 也有一个示例 http://www.codeproject.com/KB/web-image/ascii_art_with_c_.aspx

【讨论】:

  • oOOoo,我看到了那个代码项目项目......非常漂亮的东西。 :)
【解决方案2】:

要了解完整的 ASCII “谱”,您应该了解 ASCII 图表,也称为 ASCII 表。

http://www.asciitable.com/

知道了这一点,就可以获取在 codeproject 链接中找到的代码,并用它制作一些“独特”的东西。 :-)

如果您考虑一下,它只是一个“查找”表,您可以从中提取一个值并做任何您想做的事情。

【讨论】:

    【解决方案3】:

    ASCII 艺术相当通用,但如果您想制作 ASCII 横幅或标题,那么我已将流行的 FIGlet 字体生成移植到 .NET:

    https://github.com/drewnoakes/figgle

    它非常易于使用,并且可以在 NuGet 上用于几乎所有 .NET 版本(netstandard1.3 及更高版本,因此 .NET Framework 以及 .NET Core、Xamarin 等...)。

                _ _          __    __           _     _   _ 
      /\  /\___| | | ___    / / /\ \ \___  _ __| | __| | / \
     / /_/ / _ \ | |/ _ \   \ \/  \/ / _ \| '__| |/ _` |/  /
    / __  /  __/ | | (_) |   \  /\  / (_) | |  | | (_| /\_/ 
    \/ /_/ \___|_|_|\___( )   \/  \/ \___/|_|  |_|\__,_\/   
                        |/       
    

    制作者:

    Console.WriteLine( 
        FiggleFonts.Ogre.Render("Hello, World!"));
    

    【讨论】:

      【解决方案4】:

      经过一番研究,我发现最好的方法是:

      1.转到Text to ASCII Art Generator (TAAG)

      2. 输入您的文字。

      3. 更改设置以使文本看起来适合您。 (Image)

      3.点击“选择并复制” (Image)

      4. 在 C# 代码中键入:

      string text = @"// Your copied ASCII code";
      Console.WriteLine(text);
      

      确保在引号前添加 @ 符号,以便格式保持不变,否则编辑器会给您很多错误。

      【讨论】:

        猜你喜欢
        • 2012-01-25
        • 1970-01-01
        • 1970-01-01
        • 2016-10-12
        • 1970-01-01
        • 1970-01-01
        • 2012-07-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多