我正在用Python编写一个显示图像的简单应用程序。我需要通过缩放图像来实现放大和缩小。
我认为 Image.transform 方法可以做到这一点,但我不知道如何使用它,因为它要求仿射矩阵或类似的东西:P
以下是文档的引用:
im.transform(size,AFFINE,data,filter)=>图片
对图像应用仿射变换,并将结果放在具有给定大小的新图像中。
数据是6元组(a,b,c,d,e,f),其包含来自仿射变换矩阵的前两行。对于输出图像中的每个像素(x,y),新值取自输入图像中的位置(a x + b y + c,d x + e y + f),舍入到最近的像素。
此功能可用于缩放,平移,旋转和剪切原始图像。
答案 0 :(得分:6)
使用EXTENT
而不是AFFINE
方法会更好。您只需计算两件事:您想要查看的输入部分以及它应该有多大。例如,如果要查看整个图像缩小到一半大小(即缩小2),则需要传递数据(0,0,im.size [0],im.size [1])和大小(im.size [0] / 2,im.size [1] / 2)。
答案 1 :(得分:0)
应用仿射变换并进行线性变换,然后进行平移。但是你应该只需要使用resize方法调整图像的一部分。以下SO答案中有一些示例代码: