私はPython Webサービスに取り組んでいます。別の Web サービスを呼び出して、プロファイルの写真を変更します。
別の Web サービスに接続します。この Web サービスは、4 MB 以下の画像のみを受け入れることができます。
最初の Web サービスにチェックを入れます。PIL を使用して、base64 文字列が有効なイメージかどうかを確認します。ただし、base64 文字列が 4 MB 以下のイメージを作成するかどうかを確認するにはどうすればよいですか?
エンコーディングにより 6 バイトが 8 バイトになるため、データの長さを 3/4 で乗算します。結果が 4MB の数バイト以内の場合は=
、最後の数をカウントする必要があります。
私はこれを使用しています:
def size(b64string):
return (len(b64string) * 3) / 4 - b64string.count('=', -2)
=
hereで説明されているように、パディングの長さを削除します。
おそらく最適ではありません。str.count(char) がどれほど効率的かわかりません。一方、長さ 2 の文字列に対してのみ実行されます。