python 使用pyvips调整为特定高度和宽度

m0rkklqb  于 2023-02-18  发布在  Python
关注(0)|答案(2)|浏览(200)

我找到了this的答案,我想用pyvips来调整图片的大小,在上面提到的答案和官方文档中图片是按比例调整大小的,但是我想把图片调整到一个特定的高度和宽度,有没有办法用pyvips来实现呢?

tkclm6bt

tkclm6bt1#

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

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

将加载some-file.jpg并生成适合128x128像素的高质量图像。
thumbnail上的变量可以从字符串、缓冲区甚至管道加载。
libvips文档中有一个chapter on vipsthumbnail解释了如何使用(许多)选项。

9nvpjoqh

9nvpjoqh2#

你可以使用更通用的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))

相关问题