jquery – 使用裁剪工具进行图像裁剪的Django应用程序

前端之家收集整理的这篇文章主要介绍了jquery – 使用裁剪工具进行图像裁剪的Django应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要一个用于在客户端裁剪图像的应用程序,我的意思是,使用像Jcrop jquery插件这样的裁剪工具.

我找到了这个工具:

> django-image-cropper
> django-image-cropping
> django-imagehandler
> django-avatar-crop

但最后两个取决于管理员和两个首先似乎非常耦合自己的ImageFields和模型,任何好的解决方案?

我们正在研究一个具有许多功能的大型应用程序,并且很难改变逻辑写入

解决方法

我认为这可能是你最好自己写的,因为它取决于你的数据和模型是如何布局的,是否(以及在哪里)你想保存庄稼,如果你想保留原件等等.即使你有一个很棒的应用程序,你可能会花更多的时间来尝试弯曲其他代码,以便在你的情况下做你需要的.

(这段代码非常粗糙 – 我只是简单地布置了这些步骤)

如果您的模型包含图像域,则可以添加第二个图像字段来保存裁剪后的图像:

class MyModel(models.Model):
    image = models.ImageField(...)
    image_crop = models.ImageField(...)

和一个带有额外字段的表单,用于保存将在客户端表单中填充的jcrop坐标(该字段将被隐藏).以什么形式将坐标保存到字段中取决于您,但使用json字典(客户端的json.js和服务器端的simplejson)可能是个主意,例如:

{ 'x1' : '145','y1' : '200'  ... }

表格:

class MyModelForm(form.ModelForm):
    """ Hide a field to hold the coordinates chosen by the user """
    crop_coords = forms.CharField(attrs={'style':'display:none'})        

    class Meta:
         model = MyModel

处理所有这些的视图:

def some_view(request):
    form = request.POST
    if form.is_valid():
        crop_coords = form.cleaned_data['crop_coords']
        # decode the coords using simpleson (or however you passed them)
        ...
        # create a cropped image 
        original_image = form.cleaned_data['image']
        cropped_image = cropper(original_image.path,crop_coords)
        ...
        # save it back to the db - https://stackoverflow.com/questions/1308386/programmatically-saving-image-to-django-imagefield
        ...

以及使用PIL创建裁剪图像的功能

# Look here: http://djangosnippets.org/snippets/224/
def cropper(original_image_path,crop_coords):
    """ Open original,create and return a new cropped image
    ...
原文链接:https://www.f2er.com/jquery/177820.html

猜你在找的jQuery相关文章