Django ImageField的小部件,它提供了一个将图像客户端裁剪为特定大小的接口。
django-client-side-image-cropping的Python项目详细描述
django客户端图像裁剪
Django ImageField的小部件,它提供了一个接口,用于将图像客户端(使用CroppieJavascript库)裁剪到特定大小。兼容任何Django表单,包括Django管理站点。在
此小部件与django-image-cropping不同,因为它在浏览器中而不是在服务器上执行裁剪操作。在
- 如果要在服务器上保存原始图像的副本,请使用django-image-cropping。在
- 如果不需要原始图像,请使用django客户端图像裁剪(此小部件)。它将为您节省存储空间和带宽。在
安装和设置
使用pip安装django客户端图像裁剪(DCSIC):
pip install django-client-side-image-cropping
确保'django.contrib.staticfiles'
是set up properly,并将'client_side_image_cropping'
添加到INSTALLED_APPS
设置中:
包括静态JS和CSS文件
DCSIC需要一些Javascript和CSS文件才能正常工作。如果您在django管理站点中使用小部件,那么可以使用第一种方法来包含这些文件。对于所有其他站点,您应该阅读下面的“通用表单”部分。在
对于管理站点
让您的管理类从DcsicAdminMixin
继承,这将指示管理接口包括必要的文件:
from client_side_image_cropping import DcsicAdminMixin
class EbookAdmin(admin.ModelAdmin, DcsicAdminMixin):
form = EbookForm
对于一般形式
包含使用ClientsideCroppingWidget
的表单的每个页面都应该在head
部分中包含jQuery1.9(或更高版本)和两个JS和CSS文件:
{% load static %}
<head>
<link rel="stylesheet" href="{% static "client_side_image_cropping/cropping.css" %}"></script>
<link rel="stylesheet" href="{% static "client_side_image_cropping/cropping_widget.css" %}"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="{% static "client_side_image_cropping/croppie.min.js" %}"></script>
<script src="{% static "client_side_image_cropping/cropping_widget.js" %}"></script>
</head>
使用
将ClientsideCroppingWidget
用于以下形式中的任何django.forms.ImageField
:
from client_side_image_cropping import ClientsideCroppingWidget
class EbookForm(forms.ModelForm):
class Meta:
model = Ebook
fields = ['title', 'cover_photo']
widgets = {
'cover_photo': ClientsideCroppingWidget(
width=400,
height=600,
preview_width=100,
preview_height=150,
)
}
ClientsideCroppingWidget
的构造函数参数:
width
和height
(int,必选):结果图像的尺寸(裁剪后)preview_width
和preview_height
(int):将在表单中显示的裁剪图像的预览尺寸。如果省略,则默认为width
和{}参数。在 clearable
(bool):向小部件添加一个“删除图像”按钮。如果省略,则仅当ImageField
的required
参数设置为False时,该按钮才可见。在format
(str):结果图像的文件格式。必须是'jpeg'
(默认)、'png'
或{}。在 quality
(int):以百分比表示的图像质量。仅当format
设置为'jpeg'
时才适用。对于高压缩,设置为低值;对于无损压缩,设置为100
。在file_name
(str):裁剪图像的文件名。如果省略,将生成一个随机文件名,以避免名称冲突。在
- 项目
标签: