14

HerokuでホストされているDjangoサイトがあります。モデルの1つには画像フィールドがあり、アップロードされた画像を取得してサイズを変更し、Amazon S3にプッシュして、永続的に保存できるようにします。

これは、 PILを使用してうまく機能しています

def save(self, *args, **kwargs):


    # Save this one
    super(Product, self).save(*args,**kwargs)

    # resize on file system
    size = 200, 200
    filename = str(self.thumbnail.path)
    image = Image.open(filename)
    image.thumbnail(size, Image.ANTIALIAS)
    image.save(filename)

    # send to amazon and remove from ephemeral file system
    if put_s3(filename):
        os.remove(filename)
        return True

ただし、PILはPNGおよびGIFで正常に機能するようですが、libjpegに準拠していません。ローカル開発環境または完全に制御されたnixサーバーでは、これは単にjpeg拡張機能をインストールする場合です。

しかし、Cedar Herokuスタックを使用してJpeg操作が可能かどうかを誰かが知っていますか?Requirements.txtに追加できるものは他にありますか?

他の無関係なパッケージの中で、このvirtualenvのrequirements.txtには次のものが含まれます。

Django==1.3.1
PIL==1.1.7
distribute==0.6.24
django-queued-storage==0.5
django-storages==1.1.4
psycopg2==2.4.4
python-dateutil==1.5
wsgiref==0.1.2

ありがとう

4

2 に答える 2

21

私はrequirements.txtでこのPILフォークを使用します:

-e hg+https://bitbucket.org/etienned/pil-2009-raclette/#egg=PIL

問題なくJPEGを使用できます。

       --------------------------------------------------------------------
       PIL 1.2a0 SETUP SUMMARY
       --------------------------------------------------------------------
       version       1.2a0
       platform      Python 2.7.2 (default, Oct 31 2011, 16:22:04)
                     [GCC 4.4.3] on linux2
       --------------------------------------------------------------------
       *** TKINTER support not available
       --- JPEG support available
       *** WEBP support not available
       --- ZLIB (PNG/ZIP) support available
       --- FREETYPE2 support available
       --- LITTLECMS support available
       --------------------------------------------------------------------
于 2012-04-22T12:31:49.340 に答える
8

また、以下を提供する「フレンドリーな」PILフォークであるPillowの使用を検討してください。

  • Setuptoolsの互換性
  • Python3との互換性
  • 頻繁なリリースサイクル
  • 多くのバグ修正
于 2013-06-10T22:45:11.980 に答える