解碼Go Base64 影像資料
問題:
問題:您收到的是64-來自畫布的編碼圖像資料URL並嘗試對其進行解碼以檢索其寬度和高度,但是您遇到“未知圖像格式”錯誤。
解決方案:
import ( "encoding/base64" "fmt" "image" _ "image/png" // Register the PNG format handler "strings" ) func decodeBase64Image(dataURL string) (image.Config, error) { // Remove the prefix (e.g., "data:image/png;base64,") base64Data := dataURL[strings.IndexByte(dataURL, ',')+1:] // Decode the Base64-encoded image data decoded, err := base64.StdEncoding.DecodeString(base64Data) if err != nil { return image.Config{}, fmt.Errorf("could not decode Base64 data: %w", err) } // Decode the image configuration return image.DecodeConfig(bytes.NewReader(decoded)) }
提供的資料 URL 格式是資料 URI 方案,其中包括圖片等附加資訊類型和 Base64 編碼。若要正確解碼,請依照下列步驟操作:
透過註冊 PNG 格式處理程序 (_ "image/png"),您可以啟用 image.DecodeConfig() 函數來正確解碼影像資料。如果你知道影像格式,也可以直接使用 png.DecodeConfig() 函數。
避免前綴替換:
base64Data := input[strings.IndexByte(input, ',')+1:]
以上是如何在 Go 中解碼 Base64 編碼的圖像資料並檢索其尺寸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!