drawing a line on an image with PIL

eran picture eran · Oct 24, 2012 · Viewed 75.1k times · Source

I want to draw a line and show it. assume I have a PIL image.

draw = ImageDraw.Draw(pilImage)
draw.line((100,200, 150,300), fill=128)

How can I show the image? Before drawing the line I could do:

imshow(pilImage)

but imshow(draw) does not show the image.

How do I convert this back to a PIL image?

Answer

Anurag Uniyal picture Anurag Uniyal · Oct 24, 2012

This should work:

from PIL import Image, ImageDraw
im = Image.new('RGBA', (400, 400), (0, 255, 0, 0)) 
draw = ImageDraw.Draw(im) 
draw.line((100,200, 150,300), fill=128)
im.show()

Basically using ImageDraw draw over the image, then display that image after changes, to draw a thick line pass width

draw.line((100,200, 150, 300), fill=128, width=3)