【发布时间】:2012-05-24 00:50:00
【问题描述】:
我正在使用以下代码(归功于 Dolph Larson)在 ASP.net 服务器上获取位图格式的预制图像文件,在其上绘制一个字符串并将其保存到服务器上的文件中。在原始代码中,他将位图转储到 OutputStream,但我想将其转储到文件中。
下面的代码版本成功创建了新文件,但是当我打开它时,字符串并没有出现在新文件中的图像上绘制。我想我错过了一步 - 当我使用 bitMapImage.Save("bitmaptest.jpg", ImageFormat.Jpeg) 时,我只是重新保存原始版本而不是修改后的版本吗?
代码如下:
//Load the Image to be written on.
Bitmap bitMapImage = new
System.Drawing.Bitmap(Server.MapPath("generic.jpg"));
Graphics graphicImage = Graphics.FromImage(bitMapImage);
graphicImage.SmoothingMode = SmoothingMode.AntiAlias;
graphicImage.DrawString("testing 1 2 3",
new Font("Arial", 20, FontStyle.Bold),
SystemBrushes.WindowText, new Point(0, 0));
Response.ContentType = "image/jpeg";
bitMapImage.Save("bitmaptest.jpg", ImageFormat.Jpeg);
graphicImage.Dispose();
bitMapImage.Dispose();
提前致谢!
【问题讨论】:
-
在我看来,您应该保存图形的位图,而不是您从中获取图像的位图......换句话说,graphicImage 可能正在修改它自己的 BitmapImage 副本,而您正在保存原版。
标签: asp.net visual-studio drawstring