Seite 1 von 1

Wie .png-Grafiken erstellen?

Verfasst: Sonntag 29. April 2007, 22:12
von tanneg
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

Verfasst: Sonntag 29. April 2007, 22:19
von Rebecca
Wie waere es mit der PIL (Python Imaging Library)?

Re: Wie .png-Grafiken erstellen?

Verfasst: Sonntag 29. April 2007, 23:07
von gerold
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.
Hi tanneg!

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()
Bild

mfg
Gerold
:-)

Suchworte: Bild Image zeichnen Grafik wxPython

Verfasst: Mittwoch 2. Mai 2007, 15:23
von tanneg
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

Verfasst: Freitag 4. Mai 2007, 14:01
von Bernhard
Nur für die, die den Thread später lesen:
Antwort folgte hier:
http://www.python-forum.de/topic-10501. ... 2c59be2154