12

私はPython Webサービスに取り組んでいます。別の Web サービスを呼び出して、プロファイルの写真を変更します。

別の Web サービスに接続します。この Web サービスは、4 MB 以下の画像のみを受け入れることができます。

最初の Web サービスにチェックを入れます。PIL を使用して、base64 文字列が有効なイメージかどうかを確認します。ただし、base64 文字列が 4 MB 以下のイメージを作成するかどうかを確認するにはどうすればよいですか?

4

3 に答える 3

19

エンコーディングにより 6 バイトが 8 バイトになるため、データの長さを 3/4 で乗算します。結果が 4MB の数バイト以内の場合は=、最後の数をカウントする必要があります。

于 2012-08-01T14:54:05.530 に答える
8

私はこれを使用しています:

def size(b64string):
    return (len(b64string) * 3) / 4 - b64string.count('=', -2)

=hereで説明されているように、パディングの長さを削除します。

おそらく最適ではありません。str.count(char) がどれほど効率的かわかりません。一方、長さ 2 の文字列に対してのみ実行されます。

于 2015-07-02T13:32:41.780 に答える