在Debug build中仅调用Bitmap.Save(...)时出现ExternalException

时间:2014-08-06 06:56:19

标签: c# .net system.drawing system.drawing.imaging

我使用以下代码输出我的计算结果,它应该是PNG图片。我不明白为什么在Debug运行中最后一行给我一个System.Runtime.InteropServices.ExternalException。在发布运行中一切正常。

我在网上发现,当图像被其他代码部分使用时可能会出现此错误,但在我的情况下并非如此。

//using System;
//using System.Drawing;
//using System.Drawing.Imaging;

Bitmap png = new Bitmap(this.xPixels, this.yPixels, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(png);
g.Clear(Color.White);
g.DrawString(currentTime, myFont, mySolidBrush, timeX, timeY, myXTitleFormat);

// write image to file
string path4 = string.Concat(Environment.CurrentDirectory, @"\Output\T1\" + this.fileName + ".png");
png.Save(path4, ImageFormat.Png);

1 个答案:

答案 0 :(得分:0)

online help表示“图片以错误的图片格式保存”。

使用Graphics对象执行操作也很奇怪,但使用Bitmap保存。使用g进行的操作是否会影响Bitmap

以下代码在调试或发布模式下引发异常:

       {

            Bitmap png = new Bitmap(100, 100, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            Graphics g = Graphics.FromImage(png);
            g.Clear(Color.White);
            g.DrawString("dummy", SystemFonts.DefaultFont, Brushes.Beige, RectangleF.FromLTRB(5,5,80,80), StringFormat.GenericDefault);

            // write image to file
            string path4 = @"C:\test.png";

            png.Save(path4, System.Drawing.Imaging.ImageFormat.Png);

        }