是否可以使用C#在控制台中绘制图像?

时间:2013-12-23 15:33:22

标签: c#

我正在寻找一种在控制台窗口内绘制图像的方法。与我如何调用Console.Write("this will display in the console window");类似。我不确定这是否可行。

我玩了一点没有运气(可能是因为.NET希望你使用winforms进行图形编程)。

以下是我正在尝试做的事情的片段:

using System;
using System.Drawing;

namespace DisplayImage
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var bmp = new Bitmap(100, 100))
            using (var gr = Graphics.FromImage(bmp))
            {
                gr.FillRectangle(Brushes.Orange, new Rectangle(0, 0, bmp.Width, bmp.Height));

                Console.WriteLine("draw image");
                gr.DrawImage(bmp, 1, 1);

                Console.WriteLine("drew image");
            }
        }
    }
}

有办法做到这一点吗?

修改

有没有办法操控控制台应用中的像素?也许我可以手动读取图像中的像素,并在控制台中绘制每个像素。

这只是为了好玩,顺便说一句。不是一个实际的项目,只是一个练习/探索项目。我们破解控制台: - )

3 个答案:

答案 0 :(得分:2)

没有。无法绘制到控制台窗口。它仅支持文本。最接近的是ASCII艺术!我会推荐用于图形的WPF应用程序

答案 1 :(得分:1)

实际上,答案是“是的,有点像”。请查看Drawing in a Win32 Console on C++?以获取在控制台窗口顶部绘制的本机代码。

要使用C#执行此操作,您很可能需要调用本机代码才能完成实际工作。

你不会真正在控制台窗口中绘制,只能在它上面绘制一个窗口(一个微妙但可能很重要的区别)。

答案 2 :(得分:0)

有趣的想法:

虽然Ascii艺术,我能想到的唯一可能的方式,可能不是你的想法。

http://en.wikipedia.org/wiki/ASCII_art