我目前使用Django作为后端,iOS作为我的前端。用户可以从iOS应用程序拍摄照片并上传到亚马逊S3。这个应用程序为Django提供了图片的url,这样用户以后就可以检索到它们。
这是一个非常简单的设置。然而,我们最近遇到了一个问题。图像需要重新调整大小,以便用户的下载速度更快。Django是由postgresql数据库支持的,该数据库存储了所有的图像链接。
这产生了另一个问题,因为数据库已经包含指向旧图像的url链接,所以我需要找到一种方法来批量下载某个存储桶中的所有图像,重新调整它们的大小,然后将它们重新上传到S3,以替换旧图像,使其具有与旧图像相同的图像名称。
有没有一种蟒蛇式的方法来做到这一点?
发布于 2013-07-20 02:25:32
假设我们使用一个图像库,比如Pillow
示例用法:
from PIL.Image import Image, ANTIALIAS
img = Image.open('your_image_filename')
ogn_size = img.size # gives you a tuple (x, y)
# base on ogn_size do proportional resizing, let's say by 50%. also apply the recommended
# downsizing high quality filter ANTIALIAS
image_half = img.resize( int(ogn_size[0] * 0.5), int(ogn_size[1] * 0.5), ANTIALIAS )
# more stuff to do, such as optimization on save
image_half.save( "your_image_filename_half", optimize=True,quality=80 )请阅读文档,了解您可以在生产代码库https://pillow.readthedocs.org/en/latest/中使用的更多选项和API
https://stackoverflow.com/questions/17752534
复制相似问题