发生错误的原因是什么?
outputStream cannot be null
谢谢!
public FileContentResult DisplayFont(string fontID)
{
int fontSize = 12;
string fontName = "Arial";
System.Drawing.Font rectangleFont = new System.Drawing.Font(fontName, fontSize, FontStyle.Bold);
int height = 150;
int width = 250;
Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bitmap);
g.SmoothingMode = SmoothingMode.AntiAlias;
Color backgroundColor = Color.White;
g.Clear(backgroundColor);
g.DrawString(fontName, rectangleFont,SystemBrushes.WindowText, new PointF(10, 40));
Stream outputStream = null;
bitmap.Save(outputStream, ImageFormat.Jpeg); // ERROR
byte[] byteArray = ReadFully(outputStream);
g.Dispose();
bitmap.Dispose();
return new FileContentResult(byteArray, "image/jpeg");
}
public static byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
答案 0 :(得分:3)
OutputStream
为空。它应该是,
Stream outputStream = new MemoryStream();
编辑:
int height = 150;
int width = 250;
byte []byteArray=null;
using (Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format24bppRgb))
{
int fontSize = 12;
string fontName = "Arial";
System.Drawing.Font rectangleFont = new System.Drawing.Font(fontName, fontSize, FontStyle.Bold);
Graphics g = Graphics.FromImage(bitmap);
g.SmoothingMode = SmoothingMode.AntiAlias;
Color backgroundColor = Color.White;
g.Clear(backgroundColor);
g.DrawString(fontName, rectangleFont, SystemBrushes.WindowText, new PointF(10, 40));
using (MemoryStream outputStream = new MemoryStream())
{
bitmap.Save(outputStream, ImageFormat.Jpeg);
byteArray = outputStream.ToArray();
}
}
答案 1 :(得分:0)
我找到了解决方案。
应该是
MemoryStream outputStream = new MemoryStream();
bitmap.Save(outputStream, ImageFormat.Jpeg);
byte[] byteArray = outputStream.ToArray();