Scrapy框架具有生成缩略图的内置功能。有没有办法在IMAGES_THUMBS
中仅为一侧设置所需的大小,以保持原始图像的比例?
答案 0 :(得分: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
这样做的好方法是为你不关心的那一方设置一个非常大的值,然后另一面将始终用于生成缩略图。 所以这对我有用:
IMAGES_THUMBS = {
'thumbs': (80, 100000),
}
绝对不是最好的方式,它可能会停止使用PIL的未来版本,但它现在已经足够好了。 仍然有兴趣以更好的方式实现同样的目标。