Subtrahiere ein Bild von einem anderen iOS

9

Jeder weiß, wie man einen UIImage von einem anderen UIImage subtrahiert

zum Beispiel als dieser Bildschirm:

Danke für die Antwort!

    
Matrosov Alexander 13.03.2012, 19:17
quelle

4 Antworten

4

Was bedeutet es, ein Bild zu subtrahieren? Das Beispielbild zeigt mehr von einer! roten Operation. Nehmen wir an, dass das Subtrahieren von Bild a von Bild b bedeutet, dass jedes Pixel in b, das ein Pixel in a schneidet, transparent ist. Um die Subtraktion durchzuführen, maskieren wir das Bild b auf das Inverse von Bild a. Ein guter Ansatz wäre also, eine Bildmaske aus dem Alpha-Kanal von Bild a zu erstellen und sie dann auf b anzuwenden. Um die Maske zu erstellen, würden Sie so etwas tun:

%Vor%

puh. Um dann Bild b zu maskieren, müssen Sie nur noch:

%Vor%

hey presto.

    
Tark 13.03.2012, 21:02
quelle
13

Ich glaube, Sie können dies erreichen, indem Sie den Mischmodus kCGBlendModeDestinationOut verwenden. Erstellen Sie einen neuen Kontext, zeichnen Sie Ihr Hintergrundbild, und zeichnen Sie dann das Vordergrundbild mit diesem Mischmodus.

%Vor%     
Kevin Ballard 13.03.2012 20:50
quelle
3

Um diese Ergebnisse zu erhalten, verwenden Sie das zweite Bild als Maske, wenn Sie das erste Bild zeichnen. Für diese Art der Zeichnung müssen Sie Core Graphics, alias Quartz 2D verwenden. Der Quartz 2D-Programmierleitfaden hat einen Abschnitt namens Bitmap-Bilder und Bildmasken , die Ihnen alles zeigen sollten, was Sie wissen müssen.

Sie fragen nach UIImage-Objekten, aber um Core-Grafiken zu verwenden, benötigen Sie stattdessen CGImages. Das ist kein Problem - UIImage bietet eine Eigenschaft CGImage , mit der Sie die Daten, die Sie benötigen, einfach erhalten.

    
Caleb 13.03.2012 20:33
quelle
0

Kevin Ballards Lösung hat für mich funktioniert! In Swift 3.x:

%Vor%     
Ádám Nagy 21.07.2017 22:10
quelle

Tags und Links