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 |