Kirjoittaja Aihe: Python ja image library.  (Luettu 1350 kertaa)

unzai

  • Käyttäjä
  • Viestejä: 28
    • Profiili
Python ja image library.
« : 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!


snifi

  • Vieras
Vs: Python ja image library.
« Vastaus #1 : 18.06.10 - klo:01.01 »
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:

Koodia: [Valitse]
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:

  

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.
« Viimeksi muokattu: 18.06.10 - klo:01.04 kirjoittanut snifi »