Python 创建图像缩略图失败,TypeError:';int';对象不可下标

Python 创建图像缩略图失败,TypeError:';int';对象不可下标,python,python-imaging-library,Python,Python Imaging Library,我正在尝试使用PIL模块创建背景对象,但有一个错误我不理解。守则: from PIL import Image class background(): def __init__(self, width, height, value): img = Image.open('new.png') img_new = img.thumbnail(width, height) for x in range(width): fo

我正在尝试使用PIL模块创建背景对象,但有一个错误我不理解。守则:

from PIL import Image
class background():
    def __init__(self, width, height, value):
        img = Image.open('new.png')
        img_new = img.thumbnail(width, height)
        for x in range(width):
            for y in range(height):
                img_new.putpixel(x, y, value)
        img_new.show()

bg = background(200, 200, 1)
错误:

Traceback (most recent call last):
  File "...\filename.py", line 11, in <module>
    bg = background(200, 200, 1)
  File "...\filename.py", line 5, in __init__.py
    img_new = img.thumbnail(width, height)
  File "...\Python38-32\lib\site-packages\PIL\Image.py", line 2205, in thumbnail
    if x > size[0]:
TypeError: 'int' object is not subscriptable

bg=background(800800,(0))

但不是

bg=background(800,800,(255,255,255))
或数值的任何变化

守则:

from PIL import Image
class background():
    def __init__(self, width, height, value):
        img = Image.open('new.png')
        img_new = img.thumbnail(width, height)
        for x in range(width):
            for y in range(height):
                img_new.putpixel(x, y, value)
        img_new.show()

bg = background(200, 200, 1)
from PIL import Image

class background():
    def __init__(self, width, height, value):
        img = Image.new('I', (width, height))
        for x in range(width):
            for y in range(height):
                img.putpixel((x, y), value)
        img.show()
错误:
SystemError:返回NULL而不设置错误

需要一个
size
参数,它是宽度和高度的元组:

img.thumbnail((width, height))
或者,也许更清楚:

size = (width, height)
img.thumbnail(size)
该方法还接受第二个参数,
resample
;您为大小输入了
width
,为
resample
参数输入了
height
。通过输入
width
作为大小,您将得到错误。当该方法尝试为
宽度
值(应为元组)编制索引时,将抛出异常,因为无法为整数编制索引

调用时出现类似错误,位置也是一个元组:

img_new.putpixel((x, y), value)
请注意,您确实不需要打开现有映像。如果您想创建一个统一颜色的空图像,只需使用

你需要在这里;假设您的
是我选择的单个整数值,其中像素由32位有符号整数表示。上面创建的图像大小正确,所有像素都设置为

,需要一个
大小
参数,它是宽度和高度的元组:

img.thumbnail((width, height))
或者,也许更清楚:

size = (width, height)
img.thumbnail(size)
该方法还接受第二个参数,
resample
;您为大小输入了
width
,为
resample
参数输入了
height
。通过输入
width
作为大小,您将得到错误。当该方法尝试为
宽度
值(应为元组)编制索引时,将抛出异常,因为无法为整数编制索引

调用时出现类似错误,位置也是一个元组:

img_new.putpixel((x, y), value)
请注意,您确实不需要打开现有映像。如果您想创建一个统一颜色的空图像,只需使用


你需要在这里;假设您的
是我选择的单个整数值,其中像素由32位有符号整数表示。上面创建的图像大小正确,所有像素都设置为

您的错误和标题不匹配。更完整的堆栈跟踪会有所帮助。
缩略图
有一个大小参数。它希望宽度和高度以类似于
(宽度,高度)
的方式传递。您的错误和标题不匹配。更完整的堆栈跟踪会有所帮助。
缩略图
有一个大小参数。它期望宽度和高度像
(宽度,高度)
一样传递。