我找到了this的答案,我想用pyvips来调整图片的大小,在上面提到的答案和官方文档中图片是按比例调整大小的,但是我想把图片调整到一个特定的高度和宽度,有没有办法用pyvips来实现呢?
tkclm6bt1#
pyvips中的缩略图操作将调整大小以适合一个区域。例如:
thumb = pyvips.Image.thumbnail("some-file.jpg", 128)
将加载some-file.jpg并生成适合128x128像素的高质量图像。thumbnail上的变量可以从字符串、缓冲区甚至管道加载。libvips文档中有一个chapter on vipsthumbnail解释了如何使用(许多)选项。
some-file.jpg
thumbnail
9nvpjoqh2#
你可以使用更通用的affine函数。仿射变换可以同时执行scaling、rotation和translation。你可以将仿射矩阵参数化为0旋转和0平移。首先计算实现目标形状所需的因子
affine
scaling
rotation
translation
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))
2条答案
按热度按时间tkclm6bt1#
pyvips中的缩略图操作将调整大小以适合一个区域。例如:
将加载
some-file.jpg
并生成适合128x128像素的高质量图像。thumbnail
上的变量可以从字符串、缓冲区甚至管道加载。libvips文档中有一个chapter on vipsthumbnail解释了如何使用(许多)选项。
9nvpjoqh2#
你可以使用更通用的
affine
函数。仿射变换可以同时执行scaling
、rotation
和translation
。你可以将仿射矩阵参数化为0旋转和0平移。首先计算实现目标形状所需的因子
并通过