c# - 将 base 64 字符串转换为图像并保存

标签 c# asp.net image-processing base64

这是我的代码:

protected void SaveMyImage_Click(object sender, EventArgs e)
        {
            string imageUrl = Hidden1.Value;
            string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png") ; 


            HttpWebRequest imageRequest = (HttpWebRequest)WebRequest.Create(imageUrl);
            WebResponse imageResponse = imageRequest.GetResponse();

            Stream responseStream = imageResponse.GetResponseStream();

            using (BinaryReader br = new BinaryReader(responseStream))
            {
                imageBytes = br.ReadBytes(500000);
                br.Close();
            }
            responseStream.Close();
            imageResponse.Close();

            FileStream fs = new FileStream(saveLocation, FileMode.Create);
            BinaryWriter bw = new BinaryWriter(fs);
            try
            {
                bw.Write(imageBytes);
            }
            finally
            {
                fs.Close();
                bw.Close();
            }
        }
}

最上面的 imageUrl 声明接受了一个 Base64 图像字符串,我想将它转换成图像。我认为我的代码集仅适用于“www.mysite.com/test.jpg”之类的图像,不适用于 Base64 字符串。有人有什么建议吗?谢谢!

最佳答案

这里是一个例子,你可以修改方法来接受一个字符串参数。然后使用 image.Save(...) 保存图像对象。

public Image LoadImage()
{
    //data:image/gif;base64,
    //this image is a single pixel (black)
    byte[] bytes = Convert.FromBase64String("R0lGODlhAQABAIAAAAAAAAAAACH5BAAAAAAALAAAAAABAAEAAAICTAEAOw==");

    Image image;
    using (MemoryStream ms = new MemoryStream(bytes))
    {
        image = Image.FromStream(ms);
    }

    return image;
}

当字节表示位图时,可能会出现异常 A generic error occurred in GDI+.。如果发生这种情况,请在处理内存流之前保存图像(同时仍在 using 语句中)。

关于c# - 将 base 64 字符串转换为图像并保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5400173/

相关文章:

python - 如何提高这种numpy迭代的效率?

c# - 在 Microsoft Visual Studio Community 2015 中使用 Cocos2d-x

jquery - 如何在页面加载时设置文本框值?

c# - 从 HTML 链接调用 C# 函数

c# - 如何获取带有完整月份名称的完整日期,例如 2015 年 11 月 2 日

java - FFmpeg 无法识别每个 32 位的 3 个 channel

c# - 从基本 URI 和相对路径创建新的 URI - 斜线有区别吗?

c# - 查找具有模式的文件夹名称

c# - 将 "Android.Views.ViewGroup"添加到 Xamarin XAML 页面

python - 如何在OpenCV中检测数独网格板