Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: unzai - 17.06.10 - klo:14.50
-
Tervehdys.
Tarkoituksenani on piirtää pallo pohjakuvaan jonka avaan image libraryllä.
kuva = Image.open("uusi.png")
piirros = ImageDraw.Draw(kuva)
piirros.ellipse(((125,175),(175,225)),fill = (255,0,0), outline = (0,0,0))
Ongelma on seuraava; haluan sijoittaa pallon käyttäen x ja y koordinaatteja esim. x=300 y=-400.
Nyt en saa piirrettyä palloa järkevästi pohjakuvaan vaan se menee vähän mihin sattuu ja miten tahtoo.
Pitäisikö x:n ja y:n arvot konvertoida esim. pikseleiksi? vai pitääkö käyttää jotain eri menetelmää? Onnistuuko image libraryllä vaan pitääkö käyttää jotain eri juttua?
Kiitoksia vastauksista!
-
Imaging library on omasta mielestäni huonosti dokumentoitu, ja sen vuoksi itse yleensä suosin Qt:n QImage-luokkaa. Mutta jos tuota esimerkkiäsi yrittäisin ratkaista:
import Image, ImageDraw
kuva = Image.open("empty.png")
piirros = ImageDraw.Draw(kuva)
for x in range(0,400,50):
y=x
piirros.ellipse(((x,y),(x+50,y+50)), outline = (1,1,1))
print (x,y) # prints: (0, 0), (50, 50), (100, 100), ...
kuva.save("piirros.png", "PNG")
Tuottaa seuraavan kuvan:
(http://pp.kpnet.fi/jhii/galerio/pics/piirros.png)
Eli vaadittavat koordinaatit ovat pikseleitä kuvan vasemmasta ylänurkasta. Niillä rajataan suorakulmio, jonka sisään ellipsi piirretään. Suorakulmion mitat täytyy ilmoittaa muodossa (x1,y1),(x2,y2), ja ne ovat molemmat absoluuttisia koordinaatteja kuvan ylänurkasta.