Maison >développement back-end >Golang >Comment décoder correctement les images codées en base64 dans Go ?

Comment décoder correctement les images codées en base64 dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-04 10:14:20185parcourir

How to Properly Decode Base64-Encoded Images in Go?

Go Base64 Image Decode

Lorsque vous travaillez avec un canevas HTML5, il est courant d'obtenir des URL de données d'image codées en base64. Ces chaînes contiennent à la fois un préfixe de données et les données d'image codées en base64 elles-mêmes.

Problème :

Un problème couramment rencontré est l'obtention d'une erreur « Format d'image inconnu » lorsque tenter de décoder l'image codée en base64 en utilisant image.DecodeConfig().

SOLUTION

1. Enregistrer les gestionnaires de formats d'image :

La fonction image.DecodeConfig() reconnaît uniquement les formats d'image dont les gestionnaires sont enregistrés avant son exécution. Pour les images PNG, qui sont souvent rencontrées, importez le package image/png :

import _ "image/png"

En important ce package, le gestionnaire de format PNG est enregistré, permettant à image.DecodeConfig() de décoder avec succès les images PNG.

2. Supprimer le préfixe de données :

Le préfixe de données (par exemple, data:image/png;base64,) dans l'URL des données doit être supprimé avant le décodage. Un moyen plus efficace de procéder consiste à découper la chaîne d'entrée :

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

Cette opération de découpage crée un nouvel en-tête de chaîne sans copier les données, ce qui entraîne des performances améliorées.

Une fois le format Les gestionnaires sont enregistrés et le préfixe de données est supprimé, image.DecodeConfig() peut décoder avec succès l'image PNG et fournir ses informations de largeur et de hauteur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn