使用Python图像库进行缩放
我正在用Python写一个简单的应用程序,用来显示图片。我需要实现放大和缩小功能,也就是通过缩放图片来达到这个效果。
我觉得可以用Image.transform这个方法来实现,但我不太确定怎么用,因为它需要一个仿射矩阵之类的东西 :P
下面是文档中的一段引用:
im.transform(size, AFFINE, data, filter) => image
这个方法会对图片进行仿射变换,然后把结果放到一个指定大小的新图片里。
数据是一个6个数字的元组(a, b, c, d, e, f),它包含了仿射变换矩阵的前两行。对于输出图片中的每一个像素(x, y),新的值是从输入图片中的一个位置(a x + b y + c, d x + e y + f)获取的,并且会四舍五入到最近的像素。
这个函数可以用来缩放、平移、旋转和剪切原始图片。
2 个回答
0
仿射变换是一种先进行线性变换,然后再进行平移的操作。不过,如果你只是想调整图像的一部分大小,其实只需要用到调整大小的方法就可以了。下面的链接里有一些示例代码,可以参考一下:
6
你使用EXTENT
方法会比AFFINE
方法好得多。你只需要计算两件事:你想看到输入的哪一部分,以及它应该有多大。比如说,如果你想把整个图像缩小到一半的大小(也就是放大缩小2倍),你可以传入数据(0, 0, im.size[0], im.size[1])和大小(im.size[0]/2, im.size[1]/2)。