Python PIL TypeError:期望的整数参数,得到浮点数

时间:2013-07-08 15:10:05

标签: python-3.x python-imaging-library

在Python 3.x中运行粘贴脚本时,我一直收到此错误: TypeError:期望的整数参数,浮点数

from PIL import Image
img=Image.open('C:\Mine.jpg','r')
img_w,img_h=img.size
background = Image.new('RGBA', (1440,900), (255, 255, 255, 255))
bg_w,bg_h=background.size
offset=((bg_w-img_w)/2,(bg_h-img_h)/2)
background.paste(img,offset)
background.save('C:\new.jpg')

错误MSG:

Traceback (most recent call last):
  File "C:\Users\*****\workspace\Canvas Imager\src\Imager.py", line 7, in <module>
    background.paste(img,offset)
  File "C:\Python33\lib\site-packages\PIL\Image.py", line 1127, in paste
    self.im.paste(im, box)
TypeError: integer argument expected, got float

我看到假设是一个整数但最终得到一个浮点数。我该怎样做才能使它成为int?

2 个答案:

答案 0 :(得分:12)

在Python 3中,要从分部获取整数结果,您需要使用//而不是/

offset=((bg_w-img_w)//2,(bg_h-img_h)//2)

答案 1 :(得分:1)

我的猜测是它不喜欢这一行

offset=((bg_w-img_w)/2,(bg_h-img_h)/2)

所以我会尝试像

这样的东西
offset=((bg_w-img_w)//2,(bg_h-img_h)//2)

但似乎有人只是打败了我。