Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python PIL - Draw Circle [duplicate]

I am trying to draw a simple circle and save this to a file using the Python Imaging Library:

import Image, ImageDraw

image = Image.new('RGBA', (200, 200))
draw = ImageDraw.Draw(image)
draw.ellipse((20, 180, 180, 20), fill = 'blue', outline ='blue')
draw.point((100, 100), 'red')
image.save('test.png')

The point draw.point appears on the image, but the ellipse itself does not. I tried changing the mode to just RGB (I thought the mode might affect what is displayed), but this did not solve it.

How can I fix this? Thanks!

like image 389
Rushy Panchal Avatar asked Dec 23 '13 16:12

Rushy Panchal


People also ask

How do you draw a rectangle in PIL?

rectangle() Draws an rectangle. Parameters: xy – Four points to define the bounding box. Sequence of either [(x0, y0), (x1, y1)] or [x0, y0, x1, y1].


2 Answers

Instead of specifying the upper right and lower left coordinates, swap them to get the upper left and lower right.

draw.ellipse((20, 20, 180, 180), fill = 'blue', outline ='blue')
like image 179
Mark Ransom Avatar answered Nov 14 '22 19:11

Mark Ransom


Your ellipsis coordinates are incorrect, that should be (x1, y1, x2, y2), where x1 <= x2 and y1 <= y2, as those pairs, (x1, y1) and (x2, y2), represents respectively top left and bottom right corners of enclosing rectangle.

Try to change to

draw.ellipse((20, 20, 180, 180), fill = 'blue', outline ='blue')

enter image description here

like image 40
alko Avatar answered Nov 14 '22 18:11

alko