TypeError:crop()获取1到2个位置参数,但给出了5个

时间:2017-03-23 16:23:47

标签: python image python-imaging-library crop

from PIL import Image
img=Image.open('/home/ahmed/internship/cnn_ocr/image1.png')
img.size
(2458, 3504)

但是当我尝试裁剪图像时如下:

img.crop(414,122,650,338)

我收到了以下错误:

Traceback (most recent call last):
  File "/usr/lib/python3.5/code.py", line 91, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
TypeError: crop() takes from 1 to 2 positional arguments but 5 were given

但是crop()需要4个参数:left,top,right,bottom。怎么了

1 个答案:

答案 0 :(得分:5)

crop 获取一个显式参数:一个4元组(当然隐含self)。 documentation州:

  

<强> Image.crop(box=None)

     

从此图像返回一个矩形区域。 box是一个4元组   定义像素坐标。

     

注意:在Pillow 3.4.0之前,这是一个懒惰的操作。

     

<强>参数:
  box - 裁剪矩形,作为(左,上,右,下)元组   返回类型:图片
  返回:一个Image对象。

(已添加格式)

所以你应该把它重写为:

img.crop((414,122,650,338))
#        ^    4-tuple    ^

此外,您最好将输出分配给变量(可能img本身):

some_other_img = img.crop((414,122,650,338))