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 サイトの他の関連記事を参照してください。