简易缩略图是否使用 "box" 参数来裁剪图像?



我正在开发一个网站:

  • 姜戈

在这个项目中,有很多图像,它们都有一个丑陋的黄色边框。为了删除此边框,我需要系统地裁剪所有图像。

每个图像都有自己的焦点区域(由鹡鸰提供的特征),一个不包括黄色边框的框。然而,在这种情况下,鹡鸰的标准裁剪工具是无用的,为了实现我的目标,我决定使用简单的缩略图。

下面是一个代码示例,其中我使用 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


另一个更复杂的解决方案是创建自己的过滤器(也称为调整大小规则),尽管恐怕没有记录。查看内置筛选器的实现以及如何注册它们。祝你好运。

最新更新