一个最简单的方法就是直接 resize(),唯一要额外做的就是计算新的宽(或高)。
我们记原图宽和高分别为 $width$ 和 $height$,新图的宽和高分别为 $new_width$ 和 $new_height$,那么有如下等式:
即有
下面,我们以固定宽,计算高的方式来举一个例子:
我写这篇博客的时候,是想把一些大尺寸图片,转换为宽固定为 2560 的图片,保持宽高比,所以需要计算的是新的高 new_height。
下面看代码:
这里使用 Pillow 中的 Image 实现。
1 | from PIL import Image |
完结,简单!
上面这种方式,是无损的,如果你想要的就是无损的缩放,那么 ok。
但是如果你想要图片小一点,就需要再压缩一下图片(即先按本文改尺寸,再压缩),看 Python 压缩图片大小(非尺寸)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 GuKaifeng's Blog!
评论(延迟加载 / 需要可访问 GitHub Issues)