首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bitmap.Save错误

bitmap.Save错误
EN

Stack Overflow用户
提问于 2012-08-31 10:01:25
回答 2查看 158关注 0票数 1

你知道为什么会发生这个错误吗?

代码语言:javascript
复制
outputStream  cannot be null

谢谢!

代码语言:javascript
复制
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();
            }
        }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-31 10:04:44

OutputStream为空。它应该是,

代码语言:javascript
复制
 Stream outputStream = new MemoryStream();

编辑:

代码语言:javascript
复制
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();
    }
}
票数 3
EN

Stack Overflow用户

发布于 2012-08-31 10:07:33

我找到了解决方案。

它应该是

代码语言:javascript
复制
MemoryStream outputStream = new MemoryStream();

bitmap.Save(outputStream,  ImageFormat.Jpeg);

byte[] byteArray = outputStream.ToArray(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12207999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档