一个简单的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我的应用程序崩溃,试图添加菜单   java如何创建TBase类实例   如何在java小程序中使用JMF功能?   数据结构Java中是否有用于双循环链表的内置接口?   java在使用JAXB读取XML文件时如何使用继承   在Java中获取和存储子进程的输出   从Java执行Windows命令   HQL中带日期的java限制   安卓如何使用GSON将单个JSON字段映射到多个JAVA字段?   std:random shuffle()和Collections之间的java差异。洗牌   Java正则表达式更高效的动态正则表达式   来自JSON的java POJO表示   active directory无法在Java中更改AD服务器中的密码   DataOutputStream出现java错误   scala如何指定JVM最大堆大小“Xmx”,以便在SBT中运行具有“run”操作的应用程序?   添加了`<f:actionListener>`之后,java`ViewScoped` bean会被重新创建吗?   python找不到满足java要求的版本(来自版本:),找不到与java匹配的发行版   java为什么刷新jdbc swing表中的按钮后数据会多次出现?   java在编程语言(尤其是dart)中,死代码是什么意思?   java为什么我必须在JDBC中使用回滚?