ホームページ > バックエンド開発 > Golang > Go で Base64 でエンコードされた画像を適切にデコードするにはどうすればよいですか?

Go で Base64 でエンコードされた画像を適切にデコードするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-04 10:14:20
オリジナル
184 人が閲覧しました

How to Properly Decode Base64-Encoded Images in Go?

Go Base64 Image Decode

HTML5 キャンバスを使用する場合、base64 でエンコードされた画像データの URL を取得するのが一般的です。これらの文字列には、データ プレフィックスと、base64 でエンコードされた画像データ自体の両方が含まれています。

問題:

一般的に発生する問題の 1 つは、次の場合に「不明な画像形式」エラーが発生することです。を使用してbase64でエンコードされた画像をデコードしようとしていますimage.DecodeConfig().

ソリューション

1.画像形式ハンドラーの登録:

image.DecodeConfig() 関数は、実行前にハンドラーが登録されている画像形式のみを認識します。よく見かける PNG 画像の場合は、image/png パッケージをインポートします。

import _ "image/png"
ログイン後にコピー

このパッケージをインポートすると、PNG 形式のハンドラーが登録され、image.DecodeConfig() が PNG 画像を正常にデコードできるようになります。

2.データ接頭辞の削除:

データ URL 内のデータ接頭辞 (例: data:image/png;base64) は、デコード前に削除する必要があります。これをより効率的に行う方法は、入力文字列をスライスすることです。

input := "data:image/png;base64,iVkhdfjdAjdfirtn="
b64data := input[strings.IndexByte(input, ',')+1:]
ログイン後にコピー

このスライス操作により、データをコピーせずに新しい文字列ヘッダーが作成され、パフォーマンスが向上します。

一度フォーマットすると、ハンドラーが登録され、データ プレフィックスが削除されると、image.DecodeConfig() は PNG 画像を正常にデコードし、その幅と高さの情報を提供できます。

以上がGo で Base64 でエンコードされた画像を適切にデコードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート