在Image上使用save()时参数错误

时间:2013-07-12 13:07:10

标签: c# bitmap

我在保存图像方面遇到了一些麻烦,它在我尝试保存图像的行上显示“Bad paremeter”。

我不确定这是我创建图像的方式,还是只是保存这个问题。

public static void Fullscreen()
{
    string fileName = Helper.RandomStr(10) + ".png";

    try
    {
        var image = ScreenCapture.CaptureFullscreen();
        image.Save(fileName, ImageFormat.Png);

        System.Diagnostics.Process.Start(fileName);
    }
    catch (Exception ex)
    {
        MessageBox.Show("Unable to capture fullscreen because: " + ex.ToString() + "\r\n\r\nFile: " + fileName);
    }
}

修改

以下是获取位图的方法

    public static Bitmap CaptureFullscreen()
    {
        using (Bitmap bmp = new Bitmap(ScreenDimensions.Width, ScreenDimensions.Height))
        {
            using (Graphics g = Graphics.FromImage(bmp))
            {
                g.CopyFromScreen(Point.Empty, Point.Empty, bmp.Size);
            }

            return bmp;
        }
    }

2 个答案:

答案 0 :(得分:1)

错误的参数是GDI +告诉某些问题的方式。 遗憾的是,这些错误并不是很具描述性。

首先尝试将image参数包装到Bitmap构造函数中,如:

image = new Bitmap(image);

这会强制立即处理位图。

它更简单,在位图上删除使用。

答案 1 :(得分:0)

尝试使用已知路径,看看是否开始工作。如果是这样,那么您可能需要一个新的随机字符串生成器来生成有效路径或以不同的方式命名文件。