Imagekitは、元の画像を変更せずに画像を操作できるアプリケーションです。 私は便利だと思うので、写真にはいくつかのオプションがあり、いつでもソースに戻ることができるのは明らかです。
サイズ変更、プレビューの作成、透かしの適用ができます。
設置
イメージキットを使用するには、PILまたはPILLOWが必要です
私たちはPyPIから置きます:
pip install django-imagekit
「imagekit」をINSTALLED_APPSに追加します
モデルで使用
import PIL ... from PIL import Image from imagekit.models.fields import ImageSpecField from imagekit.processors import ResizeToFit, Adjust,ResizeToFill class Jobseeker(models.Model): def get_file_path(self, filename): extension = filename.split('.')[-1] filename = "%s.%s" % (uuid.uuid4(), extension) return os.path.join("images", filename) ... photo = models.ImageField(verbose_name=u'Poster',upload_to=get_file_path,max_length=256, blank=True, null=True) photo_small =ImageSpecField([Adjust(contrast=1.2, sharpness=1.1), ResizeToFill(50, 50)], image_field='photo', format='JPEG', options={'quality': 90}) photo_medium =ImageSpecField([Adjust(contrast=1.2, sharpness=1.1), ResizeToFit(300, 200)], image_field='photo', format='JPEG', options={'quality': 90}) photo_big =ImageSpecField([Adjust(contrast=1.2, sharpness=1.1), ResizeToFit(640, 480)], image_field='photo', format='JPEG', options={'quality': 90})
テンプレートでの使用
view.pyでは、オブジェクトを渡します
def some_def(request): ... photo = Jobseeker.objects.get() ... return (render_to_response('jobseeker/resume_template.html', { ... 'photo': photo, ... }, context_instance=RequestContext(request)) )
テンプレートでは、次のフィールドを参照できます。
photo.photo_small.url # 5050 photo.photo_medium.url # 300200 photo.photo_big.url # 640480 # photo.photo_small.width # 50 photo.photo.width #
この例では、ResizeToFitとResizeToFillの2つのイメージプロセッサを使用しました。
実際、さらにいくつかあります- プロセッサモジュール
ResizeToFit(width=None, height=None, upscale=None, mat_color=None, anchor='c')
目的:指定されたサイズの画像が作成され、指定されたフレームを超えないように、元の画像がそれに比例して圧縮されて重畳されます。
幅=なし、高さ=なし-それぞれ幅と高さ。
upscale-指定されたパラメーターよりも小さい場合に画像を拡大するかどうかを決定するブール値
mat_color-ソース画像で塗りつぶされていない領域の塗りつぶし色。
ResizeToFill(width, height)
目的:指定されたサイズにサイズ変更するために、指定されたサイズを超えるものはすべて切り取られます
属性はそれぞれ、シニラと高さを示します。
作業例
元の写真
ResizeToFill
mat_colorパラメーターを使用して、新しい画像の実際の寸法を表示するResizeToFit
imagekitを使用して作成された追加の写真はすべてキャッシュフォルダーに保存され、すべてのオリジナルは別のフォルダーに保存されます。 それらは、それらが使用されるページへの最初の訪問で作成されます。 いつでも、すべての写真をオリジナルに害を与えることなく削除し、新しいパラメーターで再作成できます。
これにより、初期設定が突然正しくなく、オリジナルが保持されるとは考えられなかった場合、画像を使用した作業が大幅に促進され、開発者の神経が節約されます。
参照:
Github
ドキュメント