创建可裁剪的图像字段 - 如何存储窗口小部件的数据?

时间:2011-07-04 15:18:10

标签: python django django-admin django-widget

我想知道如何在Django中最好地实现可裁剪的ImageField。

基本上我想上传图片并裁剪它们。例如,使用imagAreaSelect

我想到的第一种方法是在我的模型上创建一个ImageField和一些元字段来存储我选择的裁剪比例,宽度和高度。 但我想知道是否有更清洁的方法来解决这个问题,并进一步囊括裁剪行为。

所以最终我想在小部件中包含所需的行为。 虽然我看到的问题是小部件通常映射到单个数据库字段。

所以我想知道这是否可行,以及如何最好地保留我的图像数据?

2 个答案:

答案 0 :(得分:3)

我们最终创建了一个用于裁剪图片的可重复使用的应用:django-image-cropping

答案 1 :(得分:1)

有几种方法可以做到这一点。一种方法是从未剪切图像的名称推断出裁剪图像的名称。因此,如果您有一个ImageField,并且有一个名为uploads / images / family.jpg的图像,您的CropableImageWidget可能会假设裁剪后的图像存储在uploads / images / cropped / family.jpg中。

另一种方法是创建自己的数据库字段类型,以存储您在裁剪时创建的所有文件的序列化表示。可能是通过JSON。