Ich versuche, in SASS zu meinem eigenen Vergnügen Mischmodi aus der PDF-Spezifikation zu implementieren.
PDF-Spezifikation: Zypern
Seite 322 ist der Alpha-Compositing-Abschnitt.
Die Eingabewerte sind im RGBA-Format, aber jetzt versuche ich die Mischung der Alpha-Komponente zu implementieren. Wie gehe ich genau hin? Soweit ich weiß, sollten meine Werte zwischen 0,0 und 1,0 liegen. Aber aus den Spezifikationen scheint es, dass Sie für jeden Farbkanal mischen sollten? Mische ich es einfach aus, um zurück zum RGBA-Formular für meine Alpha-Komponente zu gelangen?
Jede Hilfe wird geschätzt, es macht mir nichts aus, Blog, Bücher usw. zu lesen, um meine Antwort zu bekommen, da dies eine rein intellektuelle Übung ist.
Vielen Dank im Voraus,
Emil
Die SVG-Spezifikation enthält viele gute Gleichungen für verschiedene Mischmodi. Und ja, Sie müssen beide die neue Alpha und die neue Farbe berechnen - für jeden Kanal. Für Standard-Füllmethoden wird das Alpha wie folgt berechnet:
%Vor%Hinweis : Ich sehe, dass Sie Alpha als Wert zwischen 0 und 1 betrachten, was gut ist. Alpha-Werte in CSS sind immer als Float-Werte von 0 bis 1 definiert. Es ist gut, bei dieser Konvention zu bleiben, weil es die Berechnungen immens erleichtert.
Es hilft, jeden Farbkanal durch sein Alpha "zu multiplizieren"; Diese sind hilfreich für die Interpretation und Verwendung der üblichen Formeln:
%Vor%Mit anderen Worten:
%Vor% Dann für das Alpha-Compositing in Normal-Jane (wie das Überlagern von Pauspapier, auch bekannt als src-over
in Porter und Duffs Original Papier und die SVG alpha compositing spec ), nimmst du jeden Kanal und berechne ihn so :
Der letzte Schritt besteht darin, jeden endgültigen Farbkanalwert um das letzte Alpha zu "vervielfältigen":
%Vor%und lege es irgendwie in deinen Mix:
%Vor%Die anderen Füllmethoden (Multiplikation, Differenz, Bildschirm usw.) sind etwas kompliziertere Formeln, aber das Konzept für jeden einzelnen Modus ist gleich:
Wenn Sie immer noch daran interessiert sind, habe ich genau das in Stylus gemacht. Du kannst meine Fortschritte hier sehen: Ссылка Du könntest es als Start verwenden zeigen Sie für Ihren eigenen Sass Mixin.
Als Erstes konvertiere ich alle R-, G- und B-Werte von 0 bis 255 Werten in 0 - 1 Gleitkommawerte für die Zwecke der Berechnungen. Dunno, wenn das nötig ist, und es erfordert, sie auf 0 - 255 Werte zurück zu konvertieren. Es fühlte sich für mich richtig an, und Porter und Duff arbeiteten in ihrer ursprünglichen Arbeit in 0 - 1 Float-Werten.
(Ich stoße auf Probleme mit einigen Compositing-Modi, die sehr unterschiedliche Ergebnisse von den erwarteten Ergebnissen der SVG-Spezifikation liefern. Ich vermute, dass die Spezifikation die falschen Gleichungen liefert. Wenn jemand die Porter / Duff-Füllmethoden kennt Ich wäre sehr dankbar für ihre Hilfe!)
Tags und Links algorithm math pdf sass alphablending