Easy-Thumbnails 是否使用 "box" 参数来裁剪图像?
Does Easy-Thumbnails use a "box" parameter in order to crop an image?
我正在开发一个网站:
- Python
- Django
- 鹡鸰
在这个项目中有很多图片,所有图片都有一个难看的黄色边框。为了删除此边框,我需要系统地裁剪所有图像。
每个图像都有自己的焦点区域(wagtail 提供的功能),一个排除黄色边框的框。然而,用于裁剪的标准工具 wagtail 在这种情况下毫无用处,为了实现我的目标,我决定使用 easy-thumbnails。
这里是一个代码示例,其中我使用 image_object 的 focal_point 来设置裁剪操作所需的所有参数:
parameters = {
'size': (width, height),
'crop': True,
'detail': False,
'upscale': False,
}
if image_object.has_focal_point():
focal_point = image_object.get_focal_point()
parameters['box'] = "%s,%s,%s,%s" % (
int(focal_point.left),
int(focal_point.top),
int(focal_point.right - focal_point.left),
int(focal_point.bottom - focal_point.top),
)
return get_thumbnailer(image_object.file).get_thumbnail(parameters, generate=True).url
我的问题是关于 "box" 参数的。我在简单的缩略图文档中找不到它,但我在互联网上找到了使用示例。
谁能告诉我在哪里可以找到有关它的任何参考资料?或者至少列出 get_thumbnail 方法允许的所有参数?
提前致谢,
nifel87
虽然我从未针对这种特定情况尝试过,但再现大小调整方法允许使用 crop closer to the focal point 的参数,这可能会有所帮助:
By default, Wagtail will only crop enough to change the aspect ratio
of the image to match the ratio in the resize-rule.
In some cases (e.g. thumbnails), it may be preferable to crop closer
to the focal point, so that the subject of the image is more
prominent.
You can do this by appending -c at the end of the
resize-rule. For example, if you would like the image to be cropped as
closely as possible to its focal point, add -c100:
{% image page.photo fill-200x200-c100 %}
This will crop the image as much as it can, without cropping into the
focal point.
If you find that -c100 is too close, you can try -c75 or -c50. Any
whole number from 0 to
如果您希望generate the image rendition in Python,Image.get_rendition
可以使用相同的调整大小规则。
另一个更复杂的解决方案是创建您自己的过滤器(a.k.a。调整大小规则),但恐怕没有记录在案。看看 implementation of the built-in filters and how to register them。祝你好运。
我正在开发一个网站:
- Python
- Django
- 鹡鸰
在这个项目中有很多图片,所有图片都有一个难看的黄色边框。为了删除此边框,我需要系统地裁剪所有图像。
每个图像都有自己的焦点区域(wagtail 提供的功能),一个排除黄色边框的框。然而,用于裁剪的标准工具 wagtail 在这种情况下毫无用处,为了实现我的目标,我决定使用 easy-thumbnails。
这里是一个代码示例,其中我使用 image_object 的 focal_point 来设置裁剪操作所需的所有参数:
parameters = {
'size': (width, height),
'crop': True,
'detail': False,
'upscale': False,
}
if image_object.has_focal_point():
focal_point = image_object.get_focal_point()
parameters['box'] = "%s,%s,%s,%s" % (
int(focal_point.left),
int(focal_point.top),
int(focal_point.right - focal_point.left),
int(focal_point.bottom - focal_point.top),
)
return get_thumbnailer(image_object.file).get_thumbnail(parameters, generate=True).url
我的问题是关于 "box" 参数的。我在简单的缩略图文档中找不到它,但我在互联网上找到了使用示例。
谁能告诉我在哪里可以找到有关它的任何参考资料?或者至少列出 get_thumbnail 方法允许的所有参数?
提前致谢, nifel87
虽然我从未针对这种特定情况尝试过,但再现大小调整方法允许使用 crop closer to the focal point 的参数,这可能会有所帮助:
By default, Wagtail will only crop enough to change the aspect ratio of the image to match the ratio in the resize-rule.
In some cases (e.g. thumbnails), it may be preferable to crop closer to the focal point, so that the subject of the image is more prominent.
You can do this by appending -c at the end of the resize-rule. For example, if you would like the image to be cropped as closely as possible to its focal point, add -c100:
{% image page.photo fill-200x200-c100 %}
This will crop the image as much as it can, without cropping into the focal point.
If you find that -c100 is too close, you can try -c75 or -c50. Any whole number from 0 to
如果您希望generate the image rendition in Python,Image.get_rendition
可以使用相同的调整大小规则。
另一个更复杂的解决方案是创建您自己的过滤器(a.k.a。调整大小规则),但恐怕没有记录在案。看看 implementation of the built-in filters and how to register them。祝你好运。