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驱动器中找不到图像文件。我哪里错了?
尝试以这种方式保存文件:
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);
}
}