を2.8.1
から4.1.0
にアップグレードすると同じ問題が発生しました。ここで
はPillow==4.1.0
を実行しているときに例外が発生しますサンプルコードの一部です:
from PIL import Image
img = Image.new('RGBA', [100,100])
# An empty mask is created to later overlay the original image (img)
mask = Image.new('L', img.size, 255)
# Get transparency (mask) layer pixels, they will be changed!
data = mask.load()
# The function used later
def foo(x,y): return round(1.0*x/(y+1))
# Update all pixels in the mask according to some function (foo)
for x in range(img.size[0]):
for y in range(img.size[1]):
data[x,y] = foo(x,y)
出力:
Traceback (most recent call last):
File "x.py", line 12, in <module>
data[x,y] = foo(x,y)
SystemError: new style getargs format but argument is not a tuple
ここで実際のエラーが記載されている何を行うには何もを持っていません例外的に。実際には、データに割り当てられたデータのタイプが間違っています。だから、foo
上記の例では次のように再定義することができ
data[x,y]=1
data[x,y]=int(1.0)
:4.1.0
にあなたがこのいずれかのような整数を使用するが必要ながらdata[x,y]=1.0
のようなものが、有効であるよう2.8.1
でint
とfloat
の両方が、有効です2.8.1
と4.1.0
の両方で動作するように:。
def foo(x,y): return int(round(1.0*x/(y+1)))
(2,2)は、それはモジュロ1 –