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

Antwort per Email an