【问题标题】:Get the image (picture) of an django database using django-image-cropping and easy-thumbnails使用 django-image-cropping 和 easy-thumbnails 获取 django 数据库的图像(图片)
【发布时间】:2017-02-27 14:13:41
【问题描述】:

我有一个 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也不是伪文件类型。

【问题讨论】:

    标签: python django easy-thumbnails


    【解决方案1】:

    您使用的是旧版本的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,
        }
    )
    

    older versions you would use:

    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
    

    【讨论】:

    • 感谢您的帮助。我需要的是:get_thumbnailer(person.pic).get_thumbnail(...).path 但你让我走上了正轨。
    猜你喜欢
    • 2016-10-13
    • 1970-01-01
    • 2013-12-22
    • 2013-01-19
    • 2013-04-19
    • 2012-08-26
    • 2018-06-19
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多