一个简单的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

中间件工作步骤:

  1. 如果提供“质量”,图像将调整大小
  2. 如果提供裁剪“尺寸”,图像将被裁剪
  3. 返回图像

注意:“dimensions”和“quality”参数是可选的

示例

/媒体/图像/我的图像guid.jpeg?质量=1200&尺寸=300x200x900x800

  1. 中间件将按比例调整图像大小,使其更大 等于1200像素
  2. 收缩后将裁剪x1=300 y1=200 x2=900 y2=800矩形
  3. 返回图像

模板示例

{% load croppingtools_extra %}
<imgsrc="{% html5crop MyModel.image dimensions='100x100x300x300' quality=500 %}">

获取“imagefield”、“dimensions”和“quality”参数并返回url“/media/image/my_image_guid.jpeg”?质量=500&dimensions=100x100x300x300“,然后中间件将提供裁剪和调整大小的图像

注意:“尺寸”和“质量”参数是可选的

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Netbeans hibernate pdf报告   java如何将通用JAXBElement作为输入   java如何在Spring中注入自定义ObjectFactory   使用webview下载java 安卓 instagram视频   是否可能使用Java在OpenCL上运行C应用程序?   java AbstractTableModel使用TreeMap<Integer,Vector<Object>作为实现insertRow()的基础   java使用@Transaction和spring boot 2.1回滚每个异常   java Hibernate批处理操作性能   swing从Java对象的ArrayList创建JTable   代码可读性为什么java没有相同的功能/替代方案   java Spring创建名为“org”的bean时出错。springframework。aop。配置。内部自动加速器   java如何在JTable中维护用户指定的列宽?   java FCM通知图标未更改   kryo如何在java之外向kryonet发送数据   java当记录计数很高且某些列被索引时,如何优化Oracle DB中的插入率?   ffmpeg如何使用java程序执行cmd命令