跳转到主要内容

将图像原始大小调整为指定大小。

项目描述

https://github.com/un1t/django-resized/actions/workflows/python-app.yml/badge.svg

将图像原始大小调整为指定大小。兼容sorl-thumbnail。

特性

  • 在Django 2.2, 3.0, 3.1, 3.2, 4.0上测试过

  • Python 3支持

安装

pip install django-resized

配置(可选)

settings.py

DJANGORESIZED_DEFAULT_SIZE = [1920, 1080]
DJANGORESIZED_DEFAULT_SCALE = 0.5
DJANGORESIZED_DEFAULT_QUALITY = 75
DJANGORESIZED_DEFAULT_KEEP_META = True
DJANGORESIZED_DEFAULT_FORCE_FORMAT = 'JPEG'
DJANGORESIZED_DEFAULT_FORMAT_EXTENSIONS = {'JPEG': ".jpg"}
DJANGORESIZED_DEFAULT_NORMALIZE_ROTATION = True

用法

models.py

from django_resized import ResizedImageField

class MyModel(models.Model):
    ...
    image1 = ResizedImageField(size=[500, 300], upload_to='whatever')
    image2 = ResizedImageField(size=[100, 100], crop=['top', 'left'], upload_to='whatever')
    image3 = ResizedImageField(size=[100, 150], crop=['middle', 'center'], upload_to='whatever')
    image4 = ResizedImageField(scale=0.5, quality=75, upload_to='whatever')
    image5 = ResizedImageField(size=None, upload_to='whatever', force_format='PNG')
    image6 = ResizedImageField(size=[100, None], upload_to='whatever')

选项

  • size - 最大宽度和高度,例如 [640, 480]。如果某个维度为None,则使用另一个值调整大小并保持图像比例。如果size为None,则保留图像的原始大小。

  • scale - 一个浮点数,如果不为None,则在调整图像大小后重新缩放图像。

  • crop - 调整大小和裁剪。[‘top’,‘left’] - 左上角,[‘middle’,‘center’] 为中心裁剪,[‘bottom’,‘right’] - 裁剪右下角。

  • quality - 调整后图像的质量 0..100,-1 表示默认值

  • keep_meta - 保持EXIF和其他元数据,默认为True

  • force_format - 强制调整后图像的格式,支持的格式由 pillow 支持,默认为None

如何运行测试

pip install tox
tox

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪一个,请了解更多关于安装包的信息。

源代码分布

django-resized-1.0.2.tar.gz (4.8 kB 查看哈希值)

上传时间 源代码

构建分布

django_resized-1.0.2-py3-none-any.whl (5.1 kB 查看哈希值)

上传时间 Python 3