Mischen von zwei Bildern zusammen mit multiply und% opacity

8

Ich versuche, zwei Bilder mit Android zu mischen, indem ich einen Multiply-ähnlichen Mischmodus verwende.

%Vor%

Das funktioniert, aber ich habe keine Kontrolle über die "Menge" des Multiplizierens - es ist immer eine vollständige Mehrfachübertragung. Im Idealfall wäre eine Multiplikation von 0% die gleiche wie das Basisbild (img1) ohne irgendeine Änderung, aber eine Multiplikation von 100% wäre das Ergebnis, das ich mit dem obigen Code erhalte.

paint.setAlpha() scheint dafür nicht zu funktionieren.

Gibt es noch eine andere Möglichkeit, die% Deckkraft der neuen Ebene festzulegen?

P.S. Es gibt einige Methoden, um Multiplikation mit dieser Arbeit zu machen (mit LightingColorFilter ), indem man die Farbe vormultipliziert und die Farbe auf weiß angleicht, aber es ist sehr spezifisch für den Multiplikationsmodus. Ich versuche einen Weg zu finden, das anzuwenden opacity /% sache auch für alle anderen Übertragungsmodi.

    
zeh 12.10.2011, 21:58
quelle

3 Antworten

2

Ich musste vor einer Weile so etwas tun, und ich fand diesen Beitrag über Color Kanäle viel aufschlussreicher. (Aber ich fürchte, das hängt mit dem zusammen, was Sie in Ihrem "PS" beschrieben haben)

    
Marcelo Assis 14.10.2011, 23:30
quelle
2

Ich habe Fotofilter implementiert, ähnlich wie unsere iOS-App. Sie machen sowas wie source bitmap + mask bitmap + blend mode + alpha value . Um ein identisches Verhalten zu erreichen, habe ich einfach das Alpha der Maske erhöht. Hier ist, was mein Code schließlich aussieht:

%Vor%

Beachten Sie, dass jniBlend eine Methode ist, die ich selbst geschrieben habe. Sie verhält sich wie die PorterDuff-Modi in Java.

Methode makeTransparent ist nicht meine - gefunden hier : (Antwort von Ruban )

    
Den Rimus 06.01.2015 11:01
quelle
0

Der Code ist nicht vollständig. es ist nur, um Ihnen eine Idee zu geben, so dass Sie Render-Skript verwenden können, um ein Bild zu mischen

%Vor%     
anas abubakar 23.05.2017 10:18
quelle

Tags und Links