1

Scrapy 框架具有生成缩略图的内置功能。有没有办法只为一侧设置所需的尺寸IMAGES_THUMBS以保持原始图像比例?

4

1 回答 1

1

查看了 PIL 模块中的 Image.py ,它实际上自动保留了比例。问题在于您无法生成特定宽度或特定高度的缩略图 - PIL 将根据原始图像获取宽度或高度,并且无法更改。这是进行计算的代码。

    # preserve aspect ratio
    x, y = self.size
    if x > size[0]: y = max(y * size[0] / x, 1); x = size[0]
    if y > size[1]: x = max(x * size[1] / y, 1); y = size[1]
    size = x, y

这样做的hacky方法是为您不关心的一侧设置一个非常大的值,然后另一侧将始终用于生成缩略图。所以这对我有用:

 IMAGES_THUMBS = {
    'thumbs': (80, 100000),
 }

绝对不是最好的方法,它可能会停止与 PIL 的未来版本一起使用,但现在已经足够了。仍然对实现相同目标的更好方法感兴趣。

于 2012-06-20T13:55:04.120 回答