创建可裁剪的图片字段 - 如何存储控件数据?

3 投票
2 回答
926 浏览
提问于 2025-04-16 20:48

我在想怎么在Django中最好地实现一个可以裁剪的图片字段。

基本上,我想上传图片并对它们进行裁剪。比如可以使用imagAreaSelect这个工具。

我想到的第一种方法是创建一个图片字段,并在我的模型中添加一些额外的字段,用来存储裁剪的比例、宽度和高度。不过我在想,是否有更简单的方法来解决这个问题,并且能更好地封装裁剪的功能。

所以最终我希望能把想要的功能封装成一个小部件。不过我看到的问题是,小部件通常只能对应一个数据库字段。

所以我在想,这样做是否可行,以及怎么才能更好地保存我的图片数据呢?

2 个回答

1

有几种方法可以做到这一点。第一种方法是根据未裁剪图片的名字来推测裁剪后图片的名字。比如说,如果你有一个图片字段,里面有一张名为 uploads/images/family.jpg 的图片,那么你的 CropableImageWidget 可能会假设裁剪后的图片存储在 uploads/images/cropped/family.jpg 这个位置。

另一种方法是自己创建一个数据库字段类型,用来存储你在裁剪过程中生成的所有文件的序列化表示。可以通过 JSON 格式来实现。

3

我们最终做了一个可以重复使用的应用程序,用来裁剪图片:django-image-cropping

撰写回答