puzzled by ImageDraw line

alexandre_irrthum at yahoo.com alexandre_irrthum at yahoo.com
Thu Mar 2 12:16:14 CET 2006

Hi there,

I am puzzled by the comportment of the line function from the ImageDraw
module with regard to the way it draws or does not draw the last pixel
of a line.

Below I test this function on a 3x3 image and show schematic
representations of obtained images (where o means a drawn pixel)

import Image, ImageDraw
im = Image.new("L", (3,3))
draw = ImageDraw.Draw(im)
draw.line((0,0,2,2), fill=255)



So the last pixel of the line is not drawn.

Similarly, draw.line((0,2,2,0), fill=255) gives:


And draw.line((1,0,1,2), fill=255) gives:


But, surprisingly, draw.line((0,1,2,1), fill=255) gives:


Where the last pixel of the line -is- drawn, as I expected it would be
for all lines.

This seems to be true for various image sizes and line angles: the last
pixel is never drawn unless the line is horizontal.

Any clues ?



More information about the Python-list mailing list