Hallo zusammen.
Ich habe da mal eine Frage:
Als Python-Neuling suche ich nun schon länger nach einer einfachen Möglichkeit Grafiken (Linien, Balken, Punkte, Texte in beliebigen Farben) programmgesteuert zu erzeugen und als PNG-Datei (alternativ auch GIF oder JPG) zu speichern. Das Python-Script, dass diese Grafiken erzeugen soll, benutzt keine grafische Oberfläche. Turtle scheint mir nicht geeignet...
Hat da jemand Ideen???
Danke im Voraus
tanneg
Wie .png-Grafiken erstellen?
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi tanneg!tanneg hat geschrieben:Grafiken (Linien, Balken, Punkte, Texte in beliebigen Farben) programmgesteuert zu erzeugen und als PNG-Datei (alternativ auch GIF oder JPG) zu speichern.
Zusätzlich zur PIL kann wxPython auch zum Zeichnen herangezogen werden. Hier ein Beispiel mit wxPython 2.8.3 und dem neuen GraphicsContext:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import wx
def main():
# Es muss immer eine wxPython-Applikation geben
app = wx.PySimpleApp()
# Bitmap und DC (Device Context) erstellen
bitmap = wx.EmptyBitmap(width = 100, height = 100)
dc = wx.MemoryDC(bitmap) # Dieser DC zeichnet nur im Speicher
# Hintergrund gelb ausmalen
dc.SetBackground(wx.Brush("yellow", wx.SOLID))
dc.Clear()
# GraphicsContext erstellen (damit sehen die Bilder besser aus)
gc = wx.GraphicsContext_Create(dc)
# Blauen Stift zuweisen
pen = wx.Pen(colour = "blue", width = 2, style = wx.SOLID)
gc.SetPen(pen)
# Kreis zeichnen
gc.DrawEllipse(x = 10, y = 10, w = 80, h = 80)
# Grünen Stift zuweisen
pen = wx.Pen("green", 4, wx.SOLID)
gc.SetPen(pen)
# Zwei horizontale Linien zeichnen
gc.DrawLines(((0, 40), (100, 40)))
gc.DrawLines(((0, 60), (100, 60)))
# Bitmap vom DC abtrennen und als PNG speichern
dc.SelectObject(wx.NullBitmap)
bitmap.SaveFile("new_image.png", wx.BITMAP_TYPE_PNG)
if __name__ == "__main__":
main()
mfg
Gerold
Suchworte: Bild Image zeichnen Grafik wxPython
Zuletzt geändert von gerold am Freitag 13. Juli 2007, 15:00, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hallo
...und danke für die Tipps. ich glaube PIL ist genau das richtige!!! Die Grafiken zu erstellen ist mit PIL wirklich einfach.
Und gleich noch eine Frage dazu. Kann man das Antialiasing der Schriften (Methode draw.text(...)) abstellen? Ich habe in der Doku leider nichts gefunden...
Danke
tanneg
...und danke für die Tipps. ich glaube PIL ist genau das richtige!!! Die Grafiken zu erstellen ist mit PIL wirklich einfach.
Und gleich noch eine Frage dazu. Kann man das Antialiasing der Schriften (Methode draw.text(...)) abstellen? Ich habe in der Doku leider nichts gefunden...
Danke
tanneg
-
- User
- Beiträge: 136
- Registriert: Sonntag 15. Januar 2006, 20:31
- Wohnort: Greifswald
- Kontaktdaten:
Nur für die, die den Thread später lesen:
Antwort folgte hier:
http://www.python-forum.de/topic-10501. ... 2c59be2154
Antwort folgte hier:
http://www.python-forum.de/topic-10501. ... 2c59be2154