我必須使用pillow在python中創建一個調整大小算法。有些變量是法語的。在這里,我在一段時間的末尾添加到 i (因此 i 始終是一個 int ),并且 x 始終是一個 int ,因為它超出了范圍。a[x] 是一個元組。from PIL import Imagephoto=Image.open("meh.jpg")from random import randinttaille=photo.sizelargeur=int(taille[0]*facteur)hauteur=int(taille[1]*facteur)diffhauteur=hauteur-taille[1]difflargeur=largeur-taille[0]newImage= Image.new('RGB', (largeur,hauteur))if diffhauteur>1: i=0 while i !=taille[0]: a=[] for b in range(taille[1]): liste.append(photo.getpixel((i,b))) #get all the data of the pixels in the row for b in range(diffhauteur): #add some pixel (gradient) to get the lenght of the new img index=randint(0,len(a)-2) pixel2=a[index+1] pixel1=a[index] ab= degrade(pixel1,pixel2) #create a gradient of two pixels as a tuple a.insert(index,ab) for x in range (hauteur):#add the row to the new img newImage.putpixel((i,x),a[x]) i=i+1newImage.show()但是,我收到此錯誤:#here are the valuesa[x]=(0.0, 0.0, -1.0)i=0x=6line 71, in resizing newImage.putpixel((i,x),a[x]) TypeError: integer argument expected, got float對于特定值,不會發生這種情況。完全是隨機的有人有答案嗎?因為這看起來很棘手或者太簡單了,我明天要問我的老師,但我不知道我是否能夠解決這個問題。感謝您
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
a[x]
不是ints
函數所要求的 的元組,而是 的元組floats
。因此,您必須將此元組轉換為整數。
您可以將元組映射到整數:
for?x?in?range?(hauteur): ????a2?=?tuple(map(int,?a[x])) ????newImage.putpixel((i,x),a2)
添加回答
舉報
0/150
提交
取消