Что мне делать, если Image.load () возвращает int вместо кортежа? - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь изменить значения пикселей на картинке числами от -5 до 5, чтобы убедиться, что нет скрытой информации для чтения.

Я попытался изменить значения пикселей, для этого я открыл изображение так же, как я видел в stackoverflow:

def changepic(filef):
    im = PIL.Image.open(filef)
    
    pixelMap = im.load()
    print pixelMap
    

    img = PIL.Image.new(im.mode, im.size)
    pixelsNew = img.load()

    for i in range(img.size[0]):
        for j in range(img.size[1]):
            r= int(pixelMap[i,j][0])+5
            g= int(pixelMap[i,j][1])-3
            b= int(pixelMap[i,j][2])+2
            pixelMap[i,j] = ((r,g,b))
            pixelsNew[i,j] = pixelMap[i,j]       
    im.close()
    img.save(filef)
    img.close()

r = int (pixelMap [i, j] [0])

TypeError: объект 'int' не имеет атрибута ' getitem '

иногда тип pixelMap имеет значение int, в то время как он должен быть кортежем.

Я пытался поискать его в Интернете, каждый веб-сайт писал, что тип возвращаемого значения должен быть кортежем, и я не смог найти решение.

Почему это происходит и как это исправить?

...