我找到了这个答案,我想使用pyvips来调整图像的大小。在上述回答和官方文件图像按比例调整。但是,我想将图像调整为特定的高度和宽度。有什么方法可以用pyvips实现这一点吗?
pyvips中的缩略图操作将调整大小以适合一个区域。例如:
thumb = pyvips.Image.thumbnail("some-file.jpg", 128)
将加载some-file.jpg
并制作适合128x128像素的高质量图像。
thumbnail
的变化可以从字符串,缓冲区甚至管道加载。
libvips文档中有一章是关于vipsthumbnail的,解释了如何使用(许多)选项。
您可以使用更通用的affine
函数。仿射变换同时作用于scaling
、rotation
和translation
。你可以参数化仿射矩阵,使其旋转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))