2011-03-04 88 views

回答

5

是这样的?

Bitmap bmp = new Bitmap(300, 300); 
Graphics g = Graphics.FromImage(bmp); 

g.Clear(Color.Transparent); 
g.FillRectangle(Brushes.Red, 100, 100, 100, 100); 

g.Flush(); 
bmp.Save("test.png", System.Drawing.Imaging.ImageFormat.Png); 

(从here

你不得不玩的过程中的图像的内容,但显卡的命名空间可能有你最需要什么。

+1

出于某种原因,我从来没有注意到Clear方法。我一直在整个表面手动使用FillRectangle,所以感谢kprobst。 :) – Jonathan 2012-06-28 08:07:50

5

您可以使用.NET框架中的Bitmap和其他图形相关类来做到这一点。

 Bitmap bmpImage = new Bitmap(width, height); 
     Graphics gr = Graphics.FromImage(bmpImage); 
     //Draw using gr here 

     //stream to the client 
     Response.ContentType = "image/png"; 

     //write to memory stream first, png can only be written to seekable stream 
     using(MemoryStream memStream = new MemoryStream()) 
     { 
      bmpImage.Save(memStream, ImageFormat.Png); 
      memStream.WriteTo(Response.OutputStream); 
     } 
     bmpImage.Dispose(); 
+0

你*必须*围绕所有System.Drawing对象(图形,位图)包装using子句。具有讽刺意味的是,MemoryStream甚至没有做任何处置时间。 – 2012-04-21 15:34:17

相关问题