PILを使用してPNG画像を文字列に書き込むにはどうすればいいですか? 質問する

PILを使用してPNG画像を文字列に書き込むにはどうすればいいですか? 質問する

私は画像生成にピルメモリ内の文字列に保存するにはどうすればいいでしょうか? このImage.save()メソッドにはファイルが必要です。

このような画像をいくつか辞書に保存しておきたいと思います。

ベストアンサー1

あなたはBytesIOクラスを使用すると、ファイルのように動作する文字列のラッパーを取得できます。オブジェクトはBytesIOファイルと同じインターフェイスを提供しますが、内容をメモリ内にのみ保存します。

import io

with io.BytesIO() as output:
    image.save(output, format="GIF")
    contents = output.getvalue()

パラメータを使用して出力形式を明示的に指定する必要がありますformat。そうしないと、PIL は自動的に検出しようとしたときにエラーを発生させます。

ファイルから画像を読み込んだ場合は、formatプロパティには元のファイル形式が含まれているため、この場合は を使用できますformat=image.format

ioモジュールが導入される前の古いPython 2バージョンでは、StringIO代わりにモジュールを使用します。

おすすめ記事