Drawing and Displaying an Image with PIL

r rt8396 at gmail.com
Tue Jan 27 22:30:44 EST 2009


On Jan 27, 9:15 pm, "W. eWatson" <notval... at sbcglobal.net> wrote:
> Here's my program:
>
> # fun and games
> import Image, ImageDraw
>
> im = Image.open("wagon.tif") # it exists in the same Win XP
> # folder as the program
> draw = ImageDraw.Draw(im)
> draw.line((0, 0) + im.size, fill=128)
> draw.line((0,0),(20,140), fill=128)
>
> # How show this final image on a display?
>
> root.mainloop()
>
> It has two problems. One is it crashes with:
>      draw.line((0,0),(20,140), fill=128)
> TypeError: line() got multiple values for keyword argument 'fill'
>
> Secondly, it has no way to display the image drawn on. Is it possible, or do
> I have to pass the image off to another module's methods?
>
> --
>                                 W. eWatson
>
>               (121.015 Deg. W, 39.262 Deg. N) GMT-8 hr std. time)
>                Obz Site:  39° 15' 7" N, 121° 2' 32" W, 2700 feet
>
>                      Web Page: <www.speckledwithstars.net/>

I have not tried your code but i think you need to put your coodinates
in one tuple. Here is an example from the docs

Example
Example: Draw a Grey Cross Over an Image
import Image, ImageDraw
im = Image.open("lena.pgm")
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128)
draw.line((0, im.size[1], im.size[0], 0), fill=128)
del draw
# write to stdout
im.save(sys.stdout, "PNG")

Hope that helps



More information about the Python-list mailing list