将 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中文网其他相关文章!