Seite 1 von 1

Alpha Color

Verfasst: Dienstag 29. Juli 2003, 08:29
von Andi
Halli Hallo Hallöle,

wie kann ich denn Formen (rechtecke, ovale) innerhalb einer canvas erzeugen welche mit einer transparenten farbe gefüllt sind.

[Tkinter] Alpha Color

Verfasst: Dienstag 29. Juli 2003, 13:59
von Voges
Hallo!
Die Füllung soll farbig, aber durchscheinend sein? Das lässt sich nur über 'Stipple Pattern' realisieren, die als Bitmap-Datei vorliegen müssen. Beispiel für ein solche Datei mit 50% Deckung(?):

Code: Alles auswählen

#define gray50_width 16
#define gray50_height 16
static unsigned char gray50_bits[] = {
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
   0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa};
Das Canvas wird dann erzeugt mit create_oval(..., stipple='@gray50.xbm', ...).
hth
Jan

Verfasst: Dienstag 29. Juli 2003, 14:31
von Dookie
Hi Voges,

das schaut aber nicht nach Python aus :shock:

Code: Alles auswählen

from array import array

gray50_bits = array('B',[
    0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
    0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa,
    0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa])

Gruß

Dookie

Verfasst: Dienstag 29. Juli 2003, 17:58
von Voges
Hallo!
Dookie hat geschrieben:das schaut aber nicht nach Python aus :shock:
Das ist typisch für Bitmap-Dateien ;-)
Dookie hat geschrieben:

Code: Alles auswählen

gray50_bits = array('B',
Da stehe ich etwas auf dem Schlauch. Wie muss denn dann der create_oval()-Aufruf aussehen?
Jan

Verfasst: Dienstag 29. Juli 2003, 19:00
von Dookie
sollte dann (laut Tkinterdoku) mit create_oval(..., stipple=gray50_bits, ...) gehen, aber man kann da ja auch die vordefinierten xbm's verwenden also create_oval(..., stipple="gray50", ...)


Gruß

Dookie