2

我目前使用 Django 作为我的后端和 iOS 作为我的前端。用户可以从 iOS 应用程序中拍照并上传到 Amazon S3。该应用程序为 Django 提供了图像的 url,以便用户以后可以检索它们。

这是一个非常简单的设置。然而,我们最近遇到了一个问题。图像需要重新调整大小,以便用户的下载速度更快。Django 由一个存储所有图像链接的 postgresql 数据库支持。

这会产生另一个问题,因为数据库已经包含指向旧图像的 url 链接,所以我需要找到一种方法来批量下载某个存储桶中的所有图像,重新调整它们的大小,然后将它们重新上传到 S3 以替换旧图像以使其具有与旧图像相同的图像名称。

有没有这样做的pythonic方式?

4

1 回答 1

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/

于 2013-07-19T18:25:32.003 回答