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 に答える