2

Django にプロフィール画像をアップロードし、PIL を使用してサーバー側でトリミングしようとしています。ファイルとトリミング領域をパラメーターとして取り、画像をトリミングして返す単純な関数を作成しました。

私が抱えている問題は、返されたオブジェクトにファイル名がないため、django が保存方法がわからないことです。これはdjangoエラーページからの説明です(AttributeError(name)が呼び出されたエラーでした):

/Library/Python/2.6/site-packages/PIL/Image.py in __getattr__
        # numpy array interface support
        new = {}
        shape, typestr = _conv_type_shape(self)
        new['shape'] = shape
        new['typestr'] = typestr
        new['data'] = self.tostring()
        return new
    raise AttributeError(name) ...
##
# Returns a string containing pixel data.
#
# @param encoder_name What encoder to use.  The default is to
#    use the standard "raw" encoder.
▼ Local vars
Variable    Value
self        <PIL.Image.Image image mode=RGB size=300x300 at 0x101FCACF8> 
name    '_committed'

django から直接アップロードした場合のように、画像ファイル オブジェクトに名前が付けられていないことがわかります。私は PIL ドキュメントと django ドキュメント全体を検索しましたが、ファイルの名前を保存するものは何も思いつきませんでした (たとえば、image.save("filename.jpg", "JPEG") は機能しませんでした)。ファイルをメモリに保存し、可能であればディスクへの書き込みを処理する必要はありません。

必要に応じて追加のコードを添付できますが、Python で単純なものが不足していると思います。これを簡単にするライブラリがあることは知っていますが、今のところ、Python/django を使用した画像処理の基礎を理解しようとしています。何か案は?ありがとう!

4

0 に答える 0