绘制一个新的System.Drawing.Bitmap

8

这段代码在最新的LINQPad 4.28 beta版本中会生成一个异常

new System.Drawing.Bitmap(200, 200).Dump();

这是我的代码问题还是LINQPad的.Dump()扩展方法的问题?

在4.26.2版本中,我没有收到异常,但是我也没有收到图像。(我只看到属性) - SLaks
2个回答

15

能够转储位图是LINQPad 4.28 beta的新功能,但似乎存在一个错误。我稍后会上传修复版。

编辑:新版本已上传。您可以通过运行以下内容进行测试:

using (var b = new System.Drawing.Bitmap (400, 200))
using (var g = Graphics.FromImage (b))
using (var f = new Font ("Arial", 40))
{
    g.SmoothingMode = SmoothingMode.AntiAlias;
    g.FillEllipse (Brushes.CadetBlue, 0, 0, 400, 200);
    g.DrawString ("LINQPad", f, Brushes.Black, 75, 70);
    b.Dump();
}

请注意,您还可以通过调用Util.Image并传入文件名或URI来转储图像。您可以使用后者使用Google的Chart API绘制图形;例如,以下内容:

Util.Image ("http://chart.apis.google.com/chart?cht=p3&chd=s:Uf9a&chs=350x140&chl=January|February|March|April")

生成以下输出:

Google 图表演示


谢谢Joe!我今晚会试一下。 - Bent Rasmussen
在4.43.06中,我需要执行以下操作:Util.Image("url").Dump() - Tim
1
@Tim:如果你在“C#表达式”模式下使用LinqPad,就不需要编写.Dump()了。(旧评论,我知道 :)) - mortb

4
LINQPad 无法使用 Dump() 绘制位图。您可以使用以下方式代替:
Application.Run(new Form { ClientSize = bitmap.Size, BackgroundImage = bitmap});

1
实际上,SLaks,在最新版本中它可以做到;-) 无论如何,感谢您的解决方法 :-) - Bent Rasmussen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接