iOS CoreGraphics: Das Streichen mit halbtransparenten Mustern führt zur Verfälschung von Farben

8

Meine Aufgabe ist es, so etwas wie ein Löschwerkzeug (mit einem Finger) zu machen, das ein Hintergrundbild statt eines gelöschten Bildes sichtbar macht.

Hier sind meine Quell- und Zielbilder (nur für Test, echte werden sich unterscheiden):

Ссылка

Und hier ist mein Code. Erstellen des Musters:

%Vor%

Muster-Callback-Funktion (** info * enthält den Zeiger auf self ):

%Vor%

Und die Zeichenmethode:

%Vor%

Wenn die lokale Variable revealAlpha den Wert 1.0 hat (wie im letzten Codestück gezeigt), funktioniert alles einwandfrei. Aber ich brauche das Löschen, um halbtransparent zu sein (damit ein Benutzer den gleichen Platz mehrere Male wischen muss, um ihn vollständig zu löschen). Und hier erscheint das Problem. Wenn ich revealAlpha kleiner als 1.0 festlege, sieht das offenbarte Zielbild beschädigt aus.

Hier sind die Ergebnisse für revealAlpha == 1.0 und revealAlpha == 0.1 :

Ссылка

Wenn Sie genau hinsehen, werden Sie feststellen, dass der blaue Farbverlauf auf dem rechten Bild nicht mehr glatt ist.

    
max.marauder 09.06.2011, 14:36
quelle

1 Antwort

0

Ich stimme dem anderen Poster zu. Es sieht nicht so aus, als wäre dein Bild beschädigt. Es sieht eher so aus, als ob Sie die Frontansicht teilweise sichtbar verlassen. Versuchen Sie als Test, das revealAlpha zu .5 zu ändern. Auf diese Weise wird beim ersten Streichen mit dem Finger die Deckkraft auf der vorderen Ebene auf 50% und bei einem zweiten Streichen auf 0% gesetzt. Es wird einfacher sein zu sagen, was vor sich geht.

    
Duncan C 03.05.2012 15:00
quelle

Tags und Links