0

我有一个 django 安装,使用插件 django-image-cropping 和 easy-thumbnails。

我想使用 vObject 将用户图片添加到 vCard。

models.py:
(...)
class Person(TranslatableModel):
    (...)
    pic = ImageCropField(_(u"profile picture"),
        blank=True,
        null=True,
        upload_to=settings.USER_PICTURE_DIR,
    )
    picture_cropped = ImageRatioField(
        'pic',
        '{}x{}'.format(*settings.USER_PICTURE_SIZE)
    )
(...)

到目前为止,我能找到的关于这个主题的全部内容是,如何获取原始图片的 URL,但我不知道如何获取裁剪后的图片,也不知道如何获取图片本身,而不是 URL 或伪图片-文件类型。

4

1 回答 1

3

您使用的是旧版本,django-image-cropping因为ImageCropField在最近的版本中不再存在。

对于最新版本,记录了如何从 python 代码中获取裁剪缩略图的 URL:https ://github.com/jonasundderwolf/django-image-cropping#frontend

from image_cropping.utils import get_backend
thumbnail_url = get_backend().get_thumbnail_url(
    yourmodel.image,
    {
        'size': (430, 360),
        'box': yourmodel.cropping,
        'crop': True,
        'detail': True,
    }
)

旧版本中,您将使用

from easy_thumbnails.files import get_thumbnailer
thumbnail_url = get_thumbnailer(yourmodel.image).get_thumbnail({
    'size': (430, 360),
    'box': yourmodel.cropping,
    'crop': True,
    'detail': True,
}).url
于 2017-02-27T14:32:55.430 回答