2010-11-22 6 views
6

Questo codice genera un'eccezione con l'ultima LINQPad 4.28 betaDisegnare un nuovo System.Drawing.Bitmap

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

È questo un problema nel mio codice o un problema con .dump metodo di estensione del LINQPad()?

+0

In 4.26.2, non ottengo un'eccezione, ma non ottenere un'immagine neanche. (Vedo solo le proprietà) – SLaks

risposta

12

Essere in grado di scaricare le bitmap è una nuova caratteristica del LINQPad 4,28 beta - ma sembra che ci sia un bug. Oggi caricherò una correzione.

Modifica: la nuova build è stata caricata. È possibile verificare eseguendo questo:

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(); 
} 

Si noti che è anche possibile scaricare le immagini chiamando Util.Image, passando in un nome di file o URI. Puoi usare quest'ultimo per disegnare grafici usando Google's Chart API; per esempio, la seguente:

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

genera questo output:

Google Chart Demo

+0

Grazie Joe! Ci proverò stasera. –

+0

In 4.43.06 avevo bisogno di fare: Util.Image ("url"). Dump() – Tim

+1

@Tim: non sarà necessario scrivere .Dump() se hai LinqPad in modalità "Espressione C#". (vecchio commento, lo so :)) – mortb

3

LINQPad non può disegnare bitmap utilizzando Dump().

Invece, è possibile scrivere

Application.Run(new Form { ClientSize = bitmap.Size, BackgroundImage = bitmap}); 
+0

Bella soluzione :) –

+1

In realtà, SLaks, nella versione più recente possibile ;-) Grazie comunque per la soluzione :-) –