我有一个 Django 网站,托管在 Heroku 上。 其中一个模型有一个图像字段,它接收上传的图像,调整它们的大小,并将它们推送到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
由于
答案 0 :(得分: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
--------------------------------------------------------------------
答案 1 :(得分:8)
另外请考虑使用Pillow,这是一个“友好”的PIL分叉,提供: