Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyahkod Imej Berkod Base64 dengan Betul dalam Go?

Bagaimana untuk Menyahkod Imej Berkod Base64 dengan Betul dalam Go?

Patricia Arquette
Lepaskan: 2024-12-04 10:14:20
asal
315 orang telah melayarinya

How to Properly Decode Base64-Encoded Images in Go?

Go Base64 Image Decode

Apabila bekerja dengan kanvas HTML5, adalah perkara biasa untuk mendapatkan URL data imej berkod base64. Rentetan ini mengandungi kedua-dua awalan data dan data imej yang dikodkan base64 itu sendiri.

Masalah:

Satu isu yang biasa dihadapi ialah mendapat ralat "Format imej tidak diketahui" apabila cuba menyahkod imej berkod base64 menggunakan image.DecodeConfig().

PENYELESAIAN

1. Daftar Pengendali Format Imej:

Fungsi image.DecodeConfig() hanya mengenali format imej yang pengendalinya didaftarkan sebelum pelaksanaannya. Untuk imej PNG, yang sering ditemui, import pakej imej/png:

import _ "image/png"
Salin selepas log masuk

Dengan mengimport pakej ini, pengendali format PNG didaftarkan, membenarkan image.DecodeConfig() berjaya menyahkod imej PNG.

2. Alih Keluar Awalan Data:

Awalan data (cth., data:image/png;base64,) dalam URL data hendaklah dialih keluar sebelum penyahkodan. Cara yang lebih cekap untuk melakukan ini ialah dengan menghiris rentetan input:

input := "data:image/png;base64,iVkhdfjdAjdfirtn="
b64data := input[strings.IndexByte(input, ',')+1:]
Salin selepas log masuk

Operasi penghirisan ini mencipta pengepala rentetan baharu tanpa menyalin data, menghasilkan prestasi yang lebih baik.

Setelah format pengendali didaftarkan dan awalan data dialih keluar, image.DecodeConfig() boleh berjaya menyahkod imej PNG dan memberikan lebar dan ketinggiannya maklumat.

Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Imej Berkod Base64 dengan Betul dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan