Django项目的用户定义缩略图?

时间:2009-11-25 18:16:06

标签: django image thumbnails sorl-thumbnail

我正在组建一个大量使用图像的网站。这些图像需要以各种尺寸缩略图以适应不同的模板。

我知道像sorl-thumbnail这样的解决方案,除了一个之外,它看起来很完美:如果计算机的选择不好,我需要能够覆盖自动调整大小和裁剪。

例如:假设我上传了一张1,000 x 1,000像素的图片。我需要一个300×200的图像缩略图。如果我理解的话,sorl-thumbnail解决方案是将图像重新缩放到300×300,然后从顶部和底部切掉。

我想要做的是a)接受sorl风格的解决方案,如果它适用于图像,但b)能够覆盖sorl选择 - 在管理员,可能 - 如果这将工作更好。例如,如果它是一个人的照片,也许我宁愿裁掉这个人的躯干,只是从她的脸上做一个缩略图,恰好位于右上角?

据我所知,没有现成的可插拔解决方案(但如果我错了请纠正我)。除此之外,我想听听您关于如何解决问题的想法。是否有某种jQuery插件可以让我到达那里?

帮助!

2 个答案:

答案 0 :(得分:2)

如果您想使用现成的可插拔设备,请执行 django-photologue django-imagehandler。它允许您生成缩略图并在管理员上执行“手动裁剪”。

另一个现成的解决方案是django-thumbs。 django-thumbs覆盖你的imagefields。唯一的缺点是你需要设置它将生成缩略图的尺寸。

这两个应用程序都不能完全解决您的问题。但至少你知道从哪里开始:)

django-photologue可以生成缩略图并添加效果和水印。

编辑:如果您想使用jQuery裁剪图片,那么您可以查看jCrop。它非常易于使用。主要问题是您需要将图像上传到服务器,然后手动裁剪。

编辑2:错误的信息。它不是django-photologue而是django-imagehandler。

答案 1 :(得分:1)

sorl-thumbnail具有智能裁剪功能,可以用最少的熵切断图像部分。您需要做的就是添加crop =“smart”。它在大多数情况下都非常有效。

否则你可以查看django-imagehandler