[Tutor] More image manipulation
Terry Carroll
carroll at tjc.com
Tue Jun 7 22:26:16 CEST 2005
On Tue, 7 Jun 2005, D. Hartley wrote:
> def findlist():
> newlist = []
> for i in range(480):
> line = fromlist[:640]
> del fromlist[:640]
> x = line.index(195)
> y = x + 5
> z = line[x:y]
> del line[x:y]
> for i in z:
> newlist.append(i)
> for i in line:
> newlist.append(i)
> return newlist
where does the variable named "fromlist" come from? It's not passed into
the method as a parameter.
> B). If I run the steps in makenewpic one by one in the interpreter, it
> doesnt give me any "x not in list" error, it lets me do the result =
> newim.putdata(a) just fine. But then when I type result.show() it
> tells me 'NoneType' object has no attribute 'show'. At first I
> thought it was because when I was creating the blank newim, I was
> using mode "RGB" and adding a list of "P" pixel values to it. But I
> fixed it so that my newim is also mode "P" and it still tells me that
> type(result) = None.
You have:
> result = newim.putdata(a)
> return result
>From the PIL docs, putdata does not appear to return an image. The docs
for putdata say:
putdata
im.putdata(data)
im.putdata(data, scale, offset)
Usually, when a PIL method returns an image, the docs say "=> image"
after the method signature. My guess is that putdata returns None, which
would be consistent with the error message "'NoneType' object has no
attribute 'show'."
You'll probably want:
newim.putdata(a)
return newim
Instead.
More information about the Tutor
mailing list