Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahkod Data Imej Berkod Base64 dan Mendapatkan Dimensinya dalam Go?
Menyahkod Data Imej Go Base64
Masalah:
Anda sedang menerima Base64- URL data imej dikodkan daripada kanvas dan cuba menyahkodnya untuk mendapatkan lebar dan ketinggiannya, tetapi anda menghadapi ralat "Format imej tidak diketahui".
Penyelesaian:
Format URL data yang disediakan ialah skema URI Data, yang termasuk maklumat tambahan seperti imej jenis dan pengekodan Base64. Untuk menyahkodnya dengan betul, ikut langkah berikut:
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)) }
Dengan mendaftarkan pengendali format PNG (_ "image/png"), anda mendayakan fungsi imej.DecodeConfig() untuk menyahkod data imej dengan betul. Anda juga boleh menggunakan fungsi png.DecodeConfig() secara langsung jika anda mengetahui format imej.
Mengelakkan Penggantian Awalan:
Daripada menggantikan awalan dengan yang kosong rentetan, potong rentetan input untuk mengekstrak data berkod Base64. Ini adalah pendekatan yang lebih cekap kerana ia tidak memerlukan menyalin keseluruhan rentetan dalam ingatan.
base64Data := input[strings.IndexByte(input, ',')+1:]
Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Data Imej Berkod Base64 dan Mendapatkan Dimensinya dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!