我目前使用Django作为后端,iOS作为我的前端。用户可以从iOS应用程序拍摄照片并将其上传到Amazon S3。该应用程序为Django提供了图像的URL,以便用户以后可以检索它们。
这是一个非常简单的设置。但是我们最近遇到了一个问题。需要重新调整图像大小,以便用户的下载速度更快。 Django由postgresql数据库支持,该数据库存储所有图像链接。
这会产生另一个问题,因为数据库已经包含指向旧图像的url链接,因此我需要找到一种批量下载特定存储桶中的所有图像的方法,重新调整它们的大小,然后将它们重新上传到S3以替换旧图像的图像名称与旧图像的图像名称相同。
有没有这样做的pythonic方式?
答案 0 :(得分:1)
我们只想说我们使用图片库,例如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 )
请阅读文档,了解您可以在生产代码库中使用的更多选项和API https://pillow.readthedocs.org/en/latest/