层叠两个图片,img2和img2,alpha是一个介于[0,1]的浮点数,如果为0,效果为img1,如果为1.0,效果为img2。当然img1和img2的尺寸和模式必须相同。这个函数可以做出很漂亮的效果来,而图形的算术加减后边会说到。
Image.blend(img1, img2, alpha)这个function接受一个参数,且对图片中的每一个点执行这个函数,这个函数是一个匿名函数,在python之类的函数式编程语言中,可以使用lambda表达式来完成,如
out = img.point(lamda i: i*1.2) # 对每个点进行20%的加强method参数:
EXTENT 剪一个矩形出来(用以剪切,拉伸,压缩等操作) AFFINE 几何防射转换 QUAD 将一个四边形映射到一个矩形 MESH 将多个四边形映射到一个操作
在EXTENT参数的情况下,data是一个四元组(x0,y0,x1,y1),表示输入图片中需要处理的区域,size为新图片的尺寸,是一个二元组(width, height) 用途:剪贴,拉伸,压缩等操作
在AFFINE参数的情况下,data是一个六元组(a,b,c, d,e,f),其中包含affine转置矩阵的前两行。对于输出图片的每个像素(x,y),会被新值(ax+by+c, dx+ey+f)替换。 用途:反转,旋转,剪切等
在QUAD参数的情况下,data是一个八元组(x0,y0,x1,y1,x2,y2,x3,y3)表示源四边形的四个定点的坐标值.MESH方式跟QUAD的效果相当,不过是对多个四边形进行映射操作.
FLip_LEFT_RIGHT 左右倒置 FLIP_TOP_BOTTOM 上下倒置 ROTATE_90 旋转90度(逆时针) ROTATE_180 旋转180度(逆时针) ROTATE_270 旋转270度(逆时针)
返回当前图像的一个矩形区域。box参数是一个定义了左,上,右,下像素坐标的4元元组。
(x, y)为像素在图片上的位置
可以用list(img.getdata())显示出来
新闻热点
疑难解答