使用 django-image-cropping 和 easy-thumbnails 获取 django 数据库的图像(图片)
Get the image (picture) of an django database using django-image-cropping and easy-thumbnails
我安装了 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 也不是伪文件类型。
您使用的是旧版本的 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
我安装了 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 也不是伪文件类型。
您使用的是旧版本的 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