Heim > Backend-Entwicklung > Golang > Wie dekodiere ich Base64-kodierte Bilder in Go richtig?

Wie dekodiere ich Base64-kodierte Bilder in Go richtig?

Patricia Arquette
Freigeben: 2024-12-04 10:14:20
Original
184 Leute haben es durchsucht

How to Properly Decode Base64-Encoded Images in Go?

Base64-Bilddekodierung durchführen

Beim Arbeiten mit HTML5-Canvas ist es üblich, Base64-kodierte Bilddaten-URLs zu erhalten. Diese Zeichenfolgen enthalten sowohl ein Datenpräfix als auch die Base64-codierten Bilddaten selbst.

Problem:

Ein häufig auftretendes Problem ist die Fehlermeldung „Unbekanntes Bildformat“, wenn Es wird versucht, das Base64-codierte Bild mit zu dekodieren image.DecodeConfig().

LÖSUNG

1. Bildformat-Handler registrieren:

Die Funktion image.DecodeConfig() erkennt nur Bildformate, deren Handler vor ihrer Ausführung registriert wurden. Für häufig vorkommende PNG-Bilder importieren Sie das Paket image/png:

import _ "image/png"
Nach dem Login kopieren

Durch den Import dieses Pakets wird der PNG-Format-Handler registriert, sodass image.DecodeConfig() PNG-Bilder erfolgreich dekodieren kann.

2. Datenpräfix entfernen:

Das Datenpräfix (z. B. data:image/png;base64,) in der Daten-URL sollte vor der Dekodierung entfernt werden. Eine effizientere Möglichkeit, dies zu tun, ist das Slicing der Eingabezeichenfolge:

input := "data:image/png;base64,iVkhdfjdAjdfirtn="
b64data := input[strings.IndexByte(input, ',')+1:]
Nach dem Login kopieren

Dieser Slicing-Vorgang erstellt einen neuen String-Header, ohne die Daten zu kopieren, was zu einer verbesserten Leistung führt.

Sobald das Format Handler registriert und das Datenpräfix entfernt wird, kann image.DecodeConfig() das PNG-Bild erfolgreich dekodieren und seine Breiten- und Höheninformationen bereitstellen.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich Base64-kodierte Bilder in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage