在控制台程序中使用绘图命令创建图像文件的简单方法

本文关键字:图像 创建 文件 方法 简单 命令 绘图 程序 控制台 | 更新日期: 2023-09-27 18:01:47

我想创建一个控制台程序,当运行时,创建一个图像文件与一些编程生成的图纸。它最终将读取一些带有数字参数的配置文件,然后通过算法创建图像。

我已经可以得到我想要的HTML5画布和Javascript,使用fillRect()等绘图命令。

我已经看了(过度)庞大的。net文档关于这一点,特别是System.DrawingSystem.Windows.Media命名空间,但似乎有这么多的方法来使用这些类,我甚至不知道从哪里开始。

我计划做的一个伪代码(不是实际的类名!!)示例如下:
RasterImage raster = new RasterImage(width, height);
context = raster.getContext();
context.fillColor = 'white';
context.DrawRectangle(x,y,w,h);
context.saveAsPng('result.png');

我相信一个实际的解决方案会比这冗长得多,但这是我需要执行的当前工作流。此外,如果这个类不能过多地依赖WPF(它是一个控制台程序),但如果可能的话,实际上使用更通用的绘图类,那将是很有趣的。提前感谢!

在控制台程序中使用绘图命令创建图像文件的简单方法

使用System.Drawing.Bitmap类和它的随从,您可以非常简单地这样做:

static void Main(string[] args) {
    int width = 512;
    int height = 512;
    int x, y, w, h;
    x = y = 10;
    w = h = 100;
    using (Bitmap bmp = new Bitmap(width, height)) {
        using (Graphics g = Graphics.FromImage(bmp)) {
            g.FillRectangle(
                brush: new SolidBrush(
                    color: Color.Blue
                ),
                rect: new Rectangle(x, y, w, h)
            );
            g.DrawRectangle(
                pen: new Pen(
                    color: Color.Black, 
                    width: 3
                ),
                rect: new Rectangle(x, y, w, h)
            );
            bmp.Save(@"D:'result.png", ImageFormat.Png);
        }
    }
}

您将需要引用System.Drawing程序集并添加以下using子句:

using System.Drawing;
using System.Drawing.Imaging;