將 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中文網其他相關文章!