0

这是一个.net 网站。我有一个 100 x,y 坐标的列表。

我需要显示 100 个八角形,其中心点位于各自的坐标处。

我通过将数组传递给 javascript 并动态创建和定位图像来玩弄这个。但它看起来很糟糕,调整浏览器窗口的大小会导致问题等。

那么,我可以自己创建图形吗?我看到这段代码回答了一个类似的问题:

    using (Bitmap bmp = new Bitmap(10, 10))
    { 
        using (Graphics g = Graphics.FromImage(bmp)) 
        { 
            g.Clear(Color.White); 
            g.DrawLine(Pens.Black, new PointF(9.56f, 4.1f), 
                                           new PointF(3.456789f, 2.12345f)); 
        } 
        bmp.Save(@"c:\myimage.jpg", ImageFormat.Jpeg);
    }

你能用这个很容易地画出八边形吗?

但是,当我尝试运行上面的代码时,我收到了这个错误。

GDI+ 中出现一般错误

如果我不能让它运行,我不想花很长时间锻炼来画八边形等。

最后一件事,我不需要保存图形,我只想显示它,就好像它是我从图像文件夹中获取的图像一样。

编辑:根据下面的建议,我修改了如下代码:

using (MemoryStream ms = new MemoryStream())
            {
                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                byte[] buffer = ms.GetBuffer();
                HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length); 
            }

这是把我的画放在屏幕上。有什么需要调整的吗?

4

1 回答 1

2

您可能没有对C:\.

您应该保存到 a MemoryStream,然后将其呈现给 HTTP 响应,而不是保存到磁盘。(在 ASHX 或 MVC 操作内)

于 2012-10-05T17:49:45.340 回答