Image.Save方法不会产生任何结果

本文关键字:任何 结果 Save 方法 Image | 更新日期: 2023-09-27 17:59:16

我的目标是将base64字符串转换为图像并保存到磁盘。我有以下代码(主要来自这个SO答案)-

namespace ImageSaver
{
    using System;
    static class Program
    {
        public static void LoadImage()
        {
            //get a temp image from bytes, instead of loading from disk
            //data:image/gif;base64,
            //this image is a single pixel (black)
            byte[] bytes = Convert.FromBase64String("R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==");
            Image image;
            Bitmap bimage;
            using (MemoryStream ms = new MemoryStream(bytes))
            {
                image = Image.FromStream(ms);
            }
                bimage = new Bitmap(image);
                bimage.Save("c:''img.gif", System.Drawing.Imaging.ImageFormat.Gif);
        }
        static void Main(string[] args)
        {
            ImageSaver.Program.LoadImage();
        }
    }
}

我在MS Visual Studio 2010 Ultimate(Windows 8.1 Pro x64)上运行了它,没有出现错误,但在C驱动器中找不到图像文件。我哪里错了?

Image.Save方法不会产生任何结果

尝试以这种方式保存文件:

File.WriteAllBytes(@"c:'img.gif", bytes);

编辑

无论如何,请将您的代码置于"尝试"监视之下,以更好地理解为什么您的文件没有被保存。

尝试将LoadImage更新为该值以找出错误所在,并在MessageBox上设置调试点以检查发生的全部细节;

public static void LoadImage()
    {
        try
        {
            //get a temp image from bytes, instead of loading from disk
            //data:image/gif;base64,
            //this image is a single pixel (black)
            byte[] bytes = Convert.FromBase64String("R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==");
            Image image;
            Bitmap bimage;
            using (MemoryStream ms = new MemoryStream(bytes))
            {
                image = Image.FromStream(ms);
            }
            bimage = new Bitmap(image);
            bimage.Save("c:''img.gif", System.Drawing.Imaging.ImageFormat.Gif);
        }
        catch (Exception ex) {
            MessageBox.Show(ex.Message);
        }
    }