Django图像优化器(Compressor)
项目描述
django-image-optimizer 
Django Image Optimizer是一个简单的Django库,它允许通过使用TinyPNG或Pillow来优化图像。
安装
Django Image Optimizer可以直接从PyPI获取。
安装软件包。
$ pip install django-image-optimizer
不要忘记将'image_optimizer'添加到你的'INSTALLED_APPS'中。
# settings.py
INSTALLED_APPS = [
....
'image_optimizer',
]
你可以选择使用TinyPNG或Pillow来优化图像。通过设置以下内容来通知optimized_image你想使用哪个:
# To use Pillow OPTIMIZED_IMAGE_METHOD = 'pillow' # To use TinyPNG OPTIMIZED_IMAGE_METHOD = 'tinypng'
如果为此设置设置了任何其他字符串,则表示不会进行优化。如果你不确定是否要使用TinyPNG或Pillow,请随时查阅每个的文档。
如果您选择使用TinyPNG,您需要从TinyPNG获取API密钥。请访问https://tinypng.com/developers获取获取API密钥的详细信息。完成此操作后,将以下设置添加到您的设置文件中。注意:保留此秘密是一个好主意
TINYPNG_KEY = 'your-key'
您可以通过导入它来使用OptimizedImageField
from django.db import models
from image_optimizer.fields import OptimizedImageField
class MyModel(models.Model):
...
image = OptimizedImageField()
class MyModel2(models.Model):
"""
If you using OPTIMIZED_IMAGE_METHOD = 'pillow'
You can use this optional arguments.
This model represents a MyModel2 with a few
fields including a `image` field which is an OptimizedImageField
instance with `optimized_image_output_size` and
`optimized_image_resize_method` arguments set.
This means that image would be a resized
version of the source image, meant to keep a given screen resolution,
in this case (400, 300) pixels.
"""
image = OptimizedImageField(
upload_to="uploads/%Y/%m/%d",
optimized_image_output_size=(400, 300),
optimized_image_resize_method="cover" # "crop", "cover", "contain", "width", "height", "thumbnail" or None
)
并将图像保存到其中,就像您将图像保存到Django ImageField一样。优化后的图像将替换未优化的图像保存在url字段中。
或者,您可以直接从utils中使用image_optimizer函数。
from image_optimizer.utils import image_optimizer
def post_image(request):
image_data = request.FILES.get('image')
image_data = image_optimizer(image_data=image_data,
output_size=(400, 300),
resize_method='cover')
....
附言
关于TinyPNG API密钥的说明:如果您获得了免费的TinyPNG API令牌,您每月的图像优化限制为500个,因此如果您有大量图像,此函数可能会失败。您可以获取付费API密钥,或者等到下个月。
项目详情
关闭
django-image-optimizer-1.0.3.tar.gz的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4438332e92f3cb240e79a901a3fdef4f640b833cb238e091866484d5dfb78478 |
|
| MD5 | 96dfefc4f389e710e36d1a0d4c236395 |
|
| BLAKE2b-256 | 00116b0278048f53a1323ee273e4b2c0d329d5ff4ae2d165bb9143cdb1904927 |