一个简单的django应用程序,可以裁剪和调整图像大小
django-html5croppingtools的Python项目详细描述
安装
run pip install django-html5croppingtools
配置设置。py
Add html5croppingtools to INSTALLED_APPS
管理.py
run manage.py collectstatic
示例
不保存原始图像的管理示例
#models.pyclassMyModel(models.Model):...image=models.ImageField(upload_to='<upload path>')...#admin.py....fromhtml5croppingtools.fieldsimportCropImageFieldfromhtml5croppingtools.formsimportCropImageFormMixin....classMyModelForm(CropImageFormMixin,ModelForm):""" :param max_size maximum size of image width or height(depends on which is greater) in pixels :param width_ratio and height_ratio using this two parameters code calculates ratio between width and height of image and helps when selecting cropping area in admin by fixing ratio between sides """image=CropImageField(max_size=900,width_ratio=500,height_ratio=300)....@admin.register(MyModel)classMyModelAdmin(admin.ModelAdmin):form=MyModel....
保存原始图像的管理示例
...classMyModel(models.Model):...image=models.ImageField(upload_to='<upload path>')original_image=models.ImageField(upload_to='<upload path>')......classMyModelForm(CropImageFormMixin,ModelForm):""" :param original_field name of corresponding model's field where you want to save original image """image=CropImageField(original_field='original_image',max_size=900,width_ratio=500,height_ratio=300,)....
动态裁剪
将html5cropingtools.imagecrop.imagecrop middleware添加到中间件类
after adding html5croppingtools.imagecrop.ImageCropMiddleware to MIDDLEWARE_CLASSES you can add "quality=<int>&dimensions=<int x0 >x<int y0 >x<int x1 >x<int y1>" this parameters to GET querystring and middleware will serve corresponding image cropped and resized
中间件工作步骤:
- 如果提供“质量”,图像将调整大小
- 如果提供裁剪“尺寸”,图像将被裁剪
- 返回图像
注意:“dimensions”和“quality”参数是可选的
示例
/媒体/图像/我的图像guid.jpeg?质量=1200&尺寸=300x200x900x800
- 中间件将按比例调整图像大小,使其更大 等于1200像素
- 收缩后将裁剪x1=300 y1=200 x2=900 y2=800矩形
- 返回图像
模板示例
{% load croppingtools_extra %} <imgsrc="{% html5crop MyModel.image dimensions='100x100x300x300' quality=500 %}">
获取“imagefield”、“dimensions”和“quality”参数并返回url“/media/image/my_image_guid.jpeg”?质量=500&dimensions=100x100x300x300“,然后中间件将提供裁剪和调整大小的图像
注意:“尺寸”和“质量”参数是可选的