Jaa, das wollte ich wissen, besten Dank. Nachdem ich kapiert habe, was mask
ist, kann ich auch transparency richtig einschätzen.
beste Grüße, Christian Hahn.
----- Original Message -----
From: "Christian Dorn" <[email protected]>
To: "REALbasic NUG German" <[email protected]>
Sent: Wednesday, July 29, 2009 10:44 AM
Subject: Re: picture.mask
Am 29.07.2009 um 10:02 schrieb Christian Hahn:
Hallo, ich bitte um ein bisschen Nachhilfestunde, in der online- Hilfe und
dem Users Guide kann ich's nicht finden:
Was ist picture.mask und picture.transparency und wie gehe ich damit um?
Och, das steht aber auf der Seite für die Picture-Klasse...
In einem Window will ich etliche Canvas platzieren, dorthinein schreibe
ich jeweils JPGs mit graphics.drawpicture.
Auf die JPGs muss ich nun Teile aus anderen Bildern, nämlich nur einen
Baum, ein Haus etc., aufmontieren. Hier brauche ich also wohl
transparency.
Die transparent-Eigenschaft macht einfach alle weißen Bildteile (d.h.
alle Pixel, deren RGB-Wert gleich 255,255,255 ist) transparent, wenn
Du der Eigenschaft den Wert '1' zuweist:
myPict.transparent = 1 // alle weißen Pixel werden komplett
transparent
myPict.transparent = 0 // keine Transparenz
Die Mask-Eigenschaft ist da etwas komplexer. Die Maske hat die gleiche
Größe, wie das eigentliche Bild, und bestimmt, welche Bildteile wie
dargestellt werden. Ist ein Pixel der Maske komplett schwarz (RGB
0,0,0), wird der entsprechende Pixel des Bildes komplett opak. Je
heller Du den selben Pixel der Maske machst, desto transparenter wird
der entsprechende Pixel des Bildes dargestellt, bis er komplett
transparent ist (RGB 255,255,255). Ich verwende als Maske immer ein
entsprechendes Graustufenbild, obwohl Du genau so gut ein farbiges
Bild in die Maske zeichnen kannst. Ich finde nur, dass es bei einem
Graustufenbild wesentlich einfacher ist, den resultierenden
Transparenzgrad vorherzusagen.
Darüber hinaus wäre ich noch dankbar für eine Einschätzung zu den JPGs.
Je daten-umfangreicher das JPG, desto länger dauert natürlich das
Zeichnen und das "blättert" doch ganz schön.
Ich habe schon versucht, mit off-screen-Zeichnen etwas Zeit
herauszuholen. Das Verschieben der Canvas auf dem Bildschirm geht damit
recht flott, aber ungünstigerweise kann der Anwender alle Canvas auch
zoomen (damit mehr davon auf den Bildschirm passen) und dann muss ja
jedesmal das Verhältnis von Original-Bild zur Größe des Canvas neu
berechnet werden.
Frage: Was kostet hier eigentlich die Zeit? Das Berechnen der
Größenverhältnisse oder das Zeichnen selbst?
Ich denke die meiste Zeit wird hier für das Skalieren benötigt.
Gruß,
Christian