用pyvips调整大小到特定的高度和宽度



我找到了这个答案,我想使用pyvips来调整图像的大小。在上述回答和官方文件图像按比例调整。但是,我想将图像调整为特定的高度和宽度。有什么方法可以用pyvips实现这一点吗?

pyvips中的缩略图操作将调整大小以适合一个区域。例如:

thumb = pyvips.Image.thumbnail("some-file.jpg", 128)

将加载some-file.jpg并制作适合128x128像素的高质量图像。

thumbnail的变化可以从字符串,缓冲区甚至管道加载。

libvips文档中有一章是关于vipsthumbnail的,解释了如何使用(许多)选项。

您可以使用更通用的affine函数。仿射变换同时作用于scalingrotationtranslation。你可以参数化仿射矩阵,使其旋转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))

最新更新