If I have the correct version of the PIL code, specifying the new width
parameter to ImageDraw's line() function results in a line of twice the
specified thickness. It appears to be because, in ImagingDrawWideLine
(Draw.c), the width is both added to and subtracted from the line
positions. If dx and dy were halved, the specification should work
correctly (within rounding limits, anyway).
dx = (int) (d * (y1-y0) + 0.5);
dy = (int) (d * (x1-x0) + 0.5);
add_edge(e+0, x0 - dx, y0 + dy, x1 - dx, y1 + dy);
add_edge(e+1, x1 - dx, y1 + dy, x1 + dx, y1 - dy);
add_edge(e+2, x1 + dx, y1 - dy, x0 + dx, y0 - dy);
add_edge(e+3, x0 + dx, y0 - dy, x0 - dx, y0 + dy);
To an extent, it can be worked around by halving the width
specification, of course.
--
rzed
_______________________________________________
Image-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/image-sig