首页 >后端开发 >C++ >如何在 ASP.NET 中将 Base64 编码的图像字符串转换为图像?

如何在 ASP.NET 中将 Base64 编码的图像字符串转换为图像?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 19:58:41176浏览

How to Convert a Base64 Encoded Image String to an Image in ASP.NET?

将 Base64 编码的图像字符串转换为图像

您提供的 ASP.NET 代码片段尝试从 URL 保存图像。但是,您遇到了一个问题,因为提供的 URL 是 Base64 编码的字符串,而不是直接的图像 URL。

要解决此问题,您需要将 Base64 字符串解码为二进制数据,然后创建一个 Image 对象从二进制数据。以下是如何修改代码的示例:

protected void SaveMyImage_Click(object sender, EventArgs e)
{
    // Get the Base64 encoded image string from the hidden input field
    string base64ImageString = Hidden1.Value;

    // Convert the Base64 string to binary data
    byte[] imageBytes = Convert.FromBase64String(base64ImageString);

    // Create a memory stream from the binary data
    using (MemoryStream ms = new MemoryStream(imageBytes))
    {
        // Create an Image object from the memory stream
        Image image = Image.FromStream(ms);

        // Save the image to the specified location
        string saveLocation = Server.MapPath("~/PictureUploads/whatever2.png");
        image.Save(saveLocation);
    }
}

处理位图异常的附加说明

如果遇到“GDI 中发生一般错误”尝试解码 Base64 字符串时出现异常,可能是因为字节代表位图图像。要解决此问题,请在处理内存流之前保存图像:

// Create a memory stream from the binary data
using (MemoryStream ms = new MemoryStream(imageBytes))
{
    // Save the image to the memory stream
    image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); // Replace "Png" with the appropriate image format

    // Create an Image object from the memory stream
    image = Image.FromStream(ms);

    // Dispose the memory stream
    ms.Dispose();
}

以上是如何在 ASP.NET 中将 Base64 编码的图像字符串转换为图像?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn