允许用户手动指定图像变体作物
django-imagekit-cropper的Python项目详细描述
#django imagekit croper
一个增强django imagekit的库,它允许您指定您的图像变体作物:
![ckeditor dialog](https://raw.github.com/ninapavlich/django imagekit croper/master/docs/screenshots/crop_screenshot.png)
**instancespecfield**这是一个扩展imagespecfield的类,它将模型实例传递给处理器,以便您可以访问其他模型字段来处理图像。
**InstanceFormatSpecField**这是一个扩展InstanceSpecField的类,可以动态选择图像格式(例如JPEG、PNG、GIF)。png的文件大小比jpeg大得多,但有时文件大小是值得的;这允许管理员根据每个图像进行控制。只需将引用传递到返回PIL兼容文件格式的模型字段即可。
**image crop field**这是用于设置图像裁剪的自定义模型字段。这使用一个自定义的
小部件来允许管理员可视化地裁剪图像。
**positioncrop**这是一个自定义处理器,它接收模型实例并使用图像源和图像裁剪字段的值来裁剪图像。
**formatprocessor**这是一个自定义处理器,它实现大小调整并输出到动态格式。
**positionandformatcrop**此处理器扩展positioncrop并实现动态格式。
**警告:**此库处于早期alpha阶段。我只在django imagekit==3.2.5版的django imagekit-croper安装django imagekit-croper的示例用法
`````
>>$pip install django imagekit-croper
```
````
````
`````
settings.py
`` python
模型.py
从ImageKit_Cropper.fields导入ImageCropField、InstanceSpecField、InstanceFormatSpecField
从ImageKit_Cropper.processors导入PositionCrop、PositionAndFormatCrop、FormatProcessor
image=models.ImageField(blank=true,null=true)
={
“源”:“图像”,
“裁剪字段”:“宽度1200宽裁剪”,
“调整大小方法”:“填充”,
“宽度”:1200,
“高度”:750,
“高比例”:真
}
“宽度1200宽裁剪=图像裁剪字段(空=真,空=真,
properties=width_1200_wide_crop_properties)
width_1200_wide=instancespecfield(
source=width_1200_wide_crop_properties['source'],
options={'quality':85},
处理器=[positioncrop(width_u 1200_u-wide_u-crop_properties])
width_u 1200_u-crop_properties={
'源':'图像',
'格式字段':'获取格式',
'调整大小方法':'适合',
'宽度':1200,
'高度':无,
“高档”:假
}
width_=instanceFormatSpecField(
source=width__-crop_-properties['source'],
format_-field=width__-crop_-properties['format_-field'],
options={'quality':95},
处理器=[formatprocessor(width_1200_crop_properties)]
使用png=models.booleanfield(默认值为false,
verbose“name=”use.png(而不是.jpg)
@property
def get“格式(self):
如果self.use“png:
return“png”
return“jpeg”
“裁剪字段”:“方形裁剪”,
“格式字段”:“获取格式”,
“调整大小方法”:“填充”,
“纵横比”:1,
“最小宽度”:400,
“最小高度”:400,
“高比例”:false
}
erties=square-crop_properties)
square-200_-crop_properties=copy.copy(square-crop_properties)
square-200_-crop_properties['width']=200
square-200_-crop_properties['height']=200
square-200=instancespecfield(
format='png',
source=square-200_-crop_properties['source',
选项={'quality':85},
处理器=[位置裁剪(正方形裁剪属性)]
square裁剪属性=复制。复制(正方形裁剪属性)
square裁剪属性['宽度]=400
square裁剪属性['高度]=400
square裁剪属性=400source=square_400_-crop_properties['source'],
format_field=square_400_-crop_properties['format_-field'],
options={'quality':85},
处理器=[位置和格式裁剪(方形裁剪属性)]
`````````
````python
``admin.py
from.forms导入imageadmin form
form=imageadminform
````
``python
forms.py
from.pythondjango import forms
from imagekit_cropper.widgets import image crop widget
from.models import image
class imageadminform(forms.modelform):
square_150_cropp=forms.charfield(widget=imagecropwidget(properties=image.square_150_cropp_properties,help_text=image.help['square__cropp'])
类meta:
model=image
```
一个增强django imagekit的库,它允许您指定您的图像变体作物:
![ckeditor dialog](https://raw.github.com/ninapavlich/django imagekit croper/master/docs/screenshots/crop_screenshot.png)
**instancespecfield**这是一个扩展imagespecfield的类,它将模型实例传递给处理器,以便您可以访问其他模型字段来处理图像。
**InstanceFormatSpecField**这是一个扩展InstanceSpecField的类,可以动态选择图像格式(例如JPEG、PNG、GIF)。png的文件大小比jpeg大得多,但有时文件大小是值得的;这允许管理员根据每个图像进行控制。只需将引用传递到返回PIL兼容文件格式的模型字段即可。
**image crop field**这是用于设置图像裁剪的自定义模型字段。这使用一个自定义的
小部件来允许管理员可视化地裁剪图像。
**positioncrop**这是一个自定义处理器,它接收模型实例并使用图像源和图像裁剪字段的值来裁剪图像。
**formatprocessor**这是一个自定义处理器,它实现大小调整并输出到动态格式。
**positionandformatcrop**此处理器扩展positioncrop并实现动态格式。
**警告:**此库处于早期alpha阶段。我只在django imagekit==3.2.5版的django imagekit-croper安装django imagekit-croper的示例用法
`````
>>$pip install django imagekit-croper
```
````
````
`````
settings.py
`` python
模型.py
从ImageKit_Cropper.fields导入ImageCropField、InstanceSpecField、InstanceFormatSpecField
从ImageKit_Cropper.processors导入PositionCrop、PositionAndFormatCrop、FormatProcessor
image=models.ImageField(blank=true,null=true)
={
“源”:“图像”,
“裁剪字段”:“宽度1200宽裁剪”,
“调整大小方法”:“填充”,
“宽度”:1200,
“高度”:750,
“高比例”:真
}
“宽度1200宽裁剪=图像裁剪字段(空=真,空=真,
properties=width_1200_wide_crop_properties)
width_1200_wide=instancespecfield(
source=width_1200_wide_crop_properties['source'],
options={'quality':85},
处理器=[positioncrop(width_u 1200_u-wide_u-crop_properties])
width_u 1200_u-crop_properties={
'源':'图像',
'格式字段':'获取格式',
'调整大小方法':'适合',
'宽度':1200,
'高度':无,
“高档”:假
}
width_=instanceFormatSpecField(
source=width__-crop_-properties['source'],
format_-field=width__-crop_-properties['format_-field'],
options={'quality':95},
处理器=[formatprocessor(width_1200_crop_properties)]
使用png=models.booleanfield(默认值为false,
verbose“name=”use.png(而不是.jpg)
@property
def get“格式(self):
如果self.use“png:
return“png”
return“jpeg”
“裁剪字段”:“方形裁剪”,
“格式字段”:“获取格式”,
“调整大小方法”:“填充”,
“纵横比”:1,
“最小宽度”:400,
“最小高度”:400,
“高比例”:false
}
erties=square-crop_properties)
square-200_-crop_properties=copy.copy(square-crop_properties)
square-200_-crop_properties['width']=200
square-200_-crop_properties['height']=200
square-200=instancespecfield(
format='png',
source=square-200_-crop_properties['source',
选项={'quality':85},
处理器=[位置裁剪(正方形裁剪属性)]
square裁剪属性=复制。复制(正方形裁剪属性)
square裁剪属性['宽度]=400
square裁剪属性['高度]=400
square裁剪属性=400source=square_400_-crop_properties['source'],
format_field=square_400_-crop_properties['format_-field'],
options={'quality':85},
处理器=[位置和格式裁剪(方形裁剪属性)]
`````````
````python
``admin.py
from.forms导入imageadmin form
````
``python
forms.py
from.pythondjango import forms
from imagekit_cropper.widgets import image crop widget
from.models import image
class imageadminform(forms.modelform):
square_150_cropp=forms.charfield(widget=imagecropwidget(properties=image.square_150_cropp_properties,help_text=image.help['square__cropp'])
类meta:
model=image
```