Sind Photoshop-ähnliche Mischmodi in HTML5 möglich?

Lesezeit: 4 Minuten

Benutzer-Avatar
Ernst Karlsons

Ich möchte ein rotes Rechteck setzen <div> Element über meine Webseite, sodass es nicht nur transparent aussieht, sondern im Multiplizieren-Modus von Photoshop auch wie gemischt aussieht.

Das <div> hätte position: fixedsodass sich der Inhalt darunter schnell ändern würde.

Geht das mit jedem HTML5/CSS3/Canvas/SVG-Trick?

Ich habe eine separate, leichtgewichtige Open-Source-Bibliothek erstellt, um Mischmodi im Photoshop-Stil von einem HTML-Canvas-Kontext zu einem anderen auszuführen: Kontext-Blender. Hier ist die Beispielnutzung:

// Might be an 'offscreen' canvas
var over  = someCanvas.getContext('2d');
var under = anotherCanvas.getContext('2d');

over.blendOnto( under, 'screen', {destX:30,destY:15} );

Siehe die Liesmich für weitere Informationen, einschließlich der derzeit unterstützten Mischmodi.

Sie könnten dies verwenden, um eine Multiplikation von einer Leinwand zur anderen durchzuführen, jedoch nicht über Standard-HTML-Elemente.

Nein (nicht nativ), aber es kommt bald: http://blogs.adobe.com/webplatform/2012/04/04/bringing-blending-to-the-web/

  • +1; Ihre Entwurfsspezifikation könnte genau das sein, was ich brauchte, um 100 % Photoshop-kompatible Mischmodi in Gegenwart von verringertem Alpha zu erhalten! (Und hoffentlich wird die Bibliothek irgendwann gar nicht mehr benötigt.)

    – Phrogz

    30. Mai 2012 um 21:35 Uhr


  • Funktioniert in Chrome Beta, wenn Sie experimentelle Webplattformfunktionen aktivieren . jsfiddle.net/X4GyF

    – geiler Arsch

    4. April 2014 um 19:16 Uhr

  • Nur fürs Protokoll, jetzt im Standardmodus in Chrome, FF und Opera

    – Wert

    22. März 2015 um 22:42 Uhr

Sie können sich auch diese Demo ansehen: http://media.chikuyonok.ru/canvas-blending/ um zu sehen, wie man das mit Leinwand macht.

Überprüfen Sie die Quelle für die Formeln der Mischmodi und wie Sie sie anwenden (Formeln sind viel besser lesbar als in Pixastic oder Context-Blender).

  • Das ist ein toller Demomann! Hast du es gemacht? Kann ich den Code bitte für normales Mischen in meiner eigenen Arbeit verwenden? Ich habe versucht, das Stammverzeichnis zu besuchen, um den Autor zu kontaktieren, aber es hat eine 404 ausgelöst!

    – Rutwick Gangurde

    20. Dezember 2012 um 6:26 Uhr

  • Nein, das bin nicht ich, das ist von dem berühmten russischen Front-End-Mann Sergey Chikuyonok (der Mann hinter Zen Coding, übrigens) 🙂 In the Artikel er ruft gerne mit dem code in der demo an, jedoch kann man ihn per kontaktieren Kommentareoder sehen Sie sich die Fußzeile der Seite für seine E-Mail an.

    – Georgij Iwankin

    20. Dezember 2012 um 12:19 Uhr

  • Danke Kumpel! Ich schicke ihn! Dieser Artikel enthält viele gute Sachen für Canvas! 🙂

    – Rutwick Gangurde

    20. Dezember 2012 um 19:11 Uhr

Dies ist kein HTML5, aber es kommt dem, was Sie fragen, so nahe, wie ich es finden kann.

Javascript-Mischmodi (OpenGL).

Ich glaube nicht, dass “Mischmodi” wie Photoshop nur mit reinem HTML emuliert werden könnten, es sei denn, die Sprache nahm eine scharfe Wendung in eine andere Richtung. Aber es wäre toll, einen einfacheren Weg zu sehen, dies zu tun.

Benutzer-Avatar
Irae Carvalho

Daran habe ich auch großes Interesse. Viele Layouts, die ich für visuelle Designer programmiert habe, hätten das verwenden können. Abgesehen von den anderen Beiträgen in diesem Thread gibt es eine Möglichkeit, dies zu tun, derzeit nur in Firefox 4, ohne Verwendung von OpenGl oder Canvas. Dies geschieht durch die Verwendung von SVG-Filtern. Anscheinend ist es auch auf Nachthemden von Webkit und Chrome, aber ich konnte noch nichts sehen, das funktioniert.

Hier sind einige Demos und Erklärungen:

IMHO ist irgendetwas in der Nähe von Mischmodi im Moment zu schwer zu erreichen. Es ist sehr schwer, Referenzen zu finden feConvolveMatrix, feSpecularLightingoder feColorMatrix, und die Beispiele sind einfach unmöglich, für mich herauszufinden. Sie könnten funktionieren, aber ich weiß nicht wie.

Ich wünsche mir sowas EffectGames vorgeschlagen:

div.sprite {
   position: absolute;
   z-index: 2;
   composite: add;
}

Dies wäre ein viel besserer Ansatz. Vielleicht könnte uns ein Ninja mit Mathematikkenntnissen dazu verhelfen.

BEARBEITEN: Es gibt eine einfachere SVG-Spezifikation, um genau Mischmodi auszuführen. Aber kein Browser, den ich getestet habe, funktioniert so (FF4, IE9, Opera11, Webkit Nightly): http://dev.w3.org/SVG/modules/compositing/master/SVGCompositingPrimer.html – Aber ich weiß auch nicht, ob dies in HTML-DOM-Elementen verwendet werden kann.

Benutzer-Avatar
Luis

Dies ist das nächste, was ich gesehen habe, und ja, alle Assets müssen sich im Canvas befinden. Beachten Sie, dass Internet Explorer Canvas in Version 9 unterstützt, die noch nicht veröffentlicht ist. Wenn Sie also IE<9 unterstützen müssen, müssen Sie eine Problemumgehung verwenden.

Benutzer-Avatar
Rick

Es ist in Chrome Canary gelandet und sollte daher bald veröffentlicht werden. http://blogs.adobe.com/webplatform/2013/04/23/all-blend-modes-for-css-fragment-shaders-have-landed/

1145150cookie-checkSind Photoshop-ähnliche Mischmodi in HTML5 möglich?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy