Alpha Color

Fragen zu Tkinter.
Antworten
Andi
User
Beiträge: 24
Registriert: Sonntag 27. Juli 2003, 14:23
Wohnort: Großkarolinenfeld

Halli Hallo Hallöle,

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

(der Anderl aus Bavaria der bei den Preißn war und jetzt wieda in bayern is)
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

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
Antworten