首頁 > 後端開發 > Golang > 如何在 Go 中解碼 Base64 編碼的圖像資料並檢索其尺寸?

如何在 Go 中解碼 Base64 編碼的圖像資料並檢索其尺寸?

Barbara Streisand
發布: 2024-12-06 21:26:16
原創
984 人瀏覽過

How to Decode Base64-Encoded Image Data and Retrieve Its Dimensions in Go?

解碼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:]
登入後複製
而不是將前綴替換為空string,對輸入字串進行切片以提取 Base64 編碼的資料。這是一種更有效的方法,因為它不需要複製記憶體中的整個字串。

以上是如何在 Go 中解碼 Base64 編碼的圖像資料並檢索其尺寸?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板