我正在开发一个网站:
- 蟒
- 姜戈
- 鸰
在这个项目中,有很多图像,它们都有一个丑陋的黄色边框。为了删除此边框,我需要系统地裁剪所有图像。
每个图像都有自己的焦点区域(由鹡鸰提供的特征),一个不包括黄色边框的框。然而,在这种情况下,鹡鸰的标准裁剪工具是无用的,为了实现我的目标,我决定使用简单的缩略图。
下面是一个代码示例,其中我使用 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
我的问题是关于"盒子"参数的。我在简单的缩略图文档中找不到它,但我在互联网上找到了使用示例。
谁能告诉我在哪里可以找到任何关于它的参考资料?或者至少列出 get_thumbnail 方法允许的所有参数?
提前感谢, 尼菲尔87
虽然我从未针对这种特定情况尝试过,但格式副本大小调整方法允许参数裁剪更接近焦点,这可能会有所帮助:
默认情况下,鹡鸰只会裁剪到足以更改纵横比的程度 以匹配调整大小规则中的比率。
在某些情况下(例如缩略图),最好裁剪得更近 到焦点,使图像的主体更多 突出。
您可以通过在末尾附加 -c 来执行此操作 调整大小规则。例如,如果您希望将图像裁剪为 尽可能靠近其焦点,添加 -c100:
{% image page.photo fill-200x200-c100 %}
这将尽可能多地裁剪图像,而不会裁剪到 重点。
如果发现 -c100 太近,可以尝试 -c75 或 -c50。任何 从 0 到 0 的整数
如果您希望在 Python 中生成图像呈现形式,则可以使用相同的调整大小规则Image.get_rendition
。
另一个更复杂的解决方案是创建自己的过滤器(也称为调整大小规则),尽管恐怕没有记录。查看内置筛选器的实现以及如何注册它们。祝你好运。