在pyvips中,缩略图操作会调整大小以适应一个区域。例如:
thumb = pyvips.Image.thumbnail("some-file.jpg", 128)
将加载some-file.jpg
并生成一个适合128x128像素的高质量图像。
thumbnail
的变种可以从字符串、缓冲区甚至管道中加载。
libvips文档有一vipsthumbnail章节,解释了如何使用(许多)选项。
您可以使用更通用的affine
函数。
仿射变换可以同时进行缩放
、旋转
和平移
。您可以参数化仿射矩阵以进行0旋转和0平移。
首先计算实现目标形状所需的必要因素。
img = pyvips.Image.new_from_file("...")
height_factor = target_height / img.height
width_factor = target_width / img.width```
并通过应用它们
img.affine((width_factor, 0, 0, height_factor))