4

注意:这是一个自我回答的问题。

我正在尝试使用 Python 代码调整图像大小,但出现以下奇怪错误:

Traceback (most recent call last):
  File "resize.py", line 5, in <module>
    logo.save("StartMyProjects_resized.png", format="PNG")
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1439, in save
    save_handler(self, fp, filename)
  File "/usr/lib/python2.7/dist-packages/PIL/PngImagePlugin.py", line 572, in _save
    ImageFile._save(im, _idat(fp, chunk), [("zip", (0,0)+im.size, 0, rawmode)])
  File "/usr/lib/python2.7/dist-packages/PIL/ImageFile.py", line 481, in _save
    e = Image._getencoder(im.mode, e, a, im.encoderconfig)
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 399, in _getencoder
    return apply(encoder, (mode,) + args + extra)
TypeError: an integer is required

我正在使用的代码是:

import Image

logo = Image.open("my_image.png")
logo = logo.resize((100, 100), Image.ANTIALIAS)
logo.save("my_image_resized.png")
4

2 回答 2

5

经过一些研究,我在 StackOverflow 上发现了这个问题,它不一样但似乎是相关的。

@SaranshMohapatra 说他同时安装了 PIL 和 Pillow(和我一样),他解决了卸载其中一个的问题。但我以不同的方式解决了这个问题。

我刚刚更改了Image导入。

从:import Image到:from PIL import Image这解决了问题!

所以最后的截图是这样的:

from PIL import Image

logo = Image.open("my_image.png")
logo = logo.resize((100, 100), Image.ANTIALIAS)
logo.save("my_image_resized.png")
于 2013-07-03T15:15:25.277 回答
0

对我来说,以下代码有效,并且似乎是可移植的:

try:
    from PIL import Image
    from PIL import ImageDraw
except ImportError:
    import Image
    import ImageDraw
于 2014-09-04T08:47:34.107 回答