Diese Frage ist keineswegs politisch!
Als ich mir die hier zu findende SVG-Version von Hillarys Logo ansah , bemerkte ich, dass es Kerben in den beiden vertikalen Balken des H gab. Der Pfeilquerbalken verdeckt die Kerben, sodass sie beim Betrachten des Logos nicht zu sehen sind. Aber ich bin sehr neugierig, warum der Designer diese Kerben angebracht haben könnte. Weiss es jemand?
Ohne die Kerben sehen Sie wahrscheinlich die Kanten der unteren Formen dort, wo sie auf die Kanten der darüber liegenden Formen treffen (auf dem Bildschirm ist dies sowieso kein Problem beim Drucken).
Beispiele und Erläuterungen zu den möglichen Artefakten finden Sie hier:
Es gibt selten einen Grund, perfekt ausgerichtete Kanten zu haben, die solche Artefakte verursachen würden, also ist die Verwendung von "Kerben" wie in Hillarys Logo eine gute Angewohnheit.
Das Verständnis der Rasterung und des Maleralgorithmus könnte hilfreich sein.
Eine Möglichkeit, Vektorgrafiken (durch Polygone anstelle von Pixeln definierte Grafiken) in Pixel zu rendern, besteht darin, die Polygone zu rastern, während der Painter-Algorithmus ausgeführt wird.
Der Algorithmus des Malers ist ein Bottom-up-Prozess, bei dem Sie zuerst den Hintergrund ablegen und dann mit jeder Farbschicht auf diesen Hintergrund zeichnen, bis Sie die oberste Schicht erreichen.
Wenn Sie eine Ebene ablegen, achten Sie auf ihre Abdeckung (normalerweise in einem zusätzlichen Kanal, dem Alphakanal), und verwenden sie, um die hinzugefügte Farbe mit dem zu mischen, was bereits vorhanden ist.
Wenn Ihre neue Ebene ein Pixel zu 50 % bedeckt und blau ist, mitteln Sie die aktuelle Farbe dieses Pixels mit Blau und zeichnen diese stattdessen dort.
Die Dinge werden etwas komplexer, wenn Sie ein Bild mit Transparenz erstellen, aber nicht grundsätzlich.
Beim Rastern wird ein Polygon in Pixel umgewandelt. Hier berechnen wir mithilfe von Algebra, wie viel das Polygon ein bestimmtes Pixel bedeckt, und berechnen dann eine Abdeckungsmenge.
Wenn Sie zwei Kanten eines Polygons haben, die deckungsgleich sind – genau übereinander –, aber beide ein bestimmtes Pixel zur Hälfte bedecken, ist das, was passiert, ein Problem.
Angenommen, das untere Polygon ist rot und das obere blau und der Hintergrund ist weiß.
Zuerst malen wir das Rot. Dies vermischt sich mit dem Weiß, was zu 50 % Weiß und 50 % Rot führt.
Dann malen wir das Blau. Dies mischt sich mit 50 % Weiß 50 % Rot und wir erhalten 25 % Weiß 25 % Rot 50 % Blau. Dasselbe passiert, wenn sich Rot und Blau in der Mitte treffen oder wenn Blau Rot vollständig überdeckt.
Aber "in Wirklichkeit" bedeckte das blaue Polygon das rote vollständig, also warum sehen wir es? Weil der Algorithmus Subpixel-Positionierungsdetails vergisst .
Solange ein Polygon zu 100 % abgedeckt ist, ist dies kein Problem.
Nun, dieses Problem ist nicht grundlegend. Sie können Polygon-Rendering mit einem Raytracing-ähnlichen Ansatz (bei dem Sie an Punkten um den Faktor N ^ 2 überrendern) oder sogar einem reinen Vektor-ähnlichen Ansatz (bei dem Sie blockierende Formen von der Geometrie der darunter liegenden Formen subtrahieren sie ausschneiden). In keinem Fall dringen "versteckte" Farben in das Ausgabebild ein.
Der Algorithmus des Malers ist nicht der einzige Fall, in dem "versteckte" Geometrie durchsickern kann. Wenn Sie mit opaken Medien drucken, sind die Farbschichten manchmal nicht perfekt ausgerichtet. Unterschichten dringen also durch, wenn die oberste Schicht sie vollständig bedecken sollte.
Da Sie nicht wissen, wie Ihr Vektorbild ausgegeben wird, können Sie mit solchen Kerben Bilder erstellen, die robuster gegenüber unvollkommenen Druck-/Anzeigetechniken sind.
Cai hat Recht. Ich dachte, ich würde auch eine visuelle Antwort hinzufügen.
Der Grund dafür ist, dass es sich um ein SVG handelt. Im Gegensatz zu einem Rasterbild, bei dem Sie jedes gerenderte Pixel steuern, erfolgt die Rasterung des SVG im Browser ... also trifft der Browser diese Entscheidungen.
Eine der Entscheidungen, die der Browser treffen muss, ist, wann Anti-Aliasing ausgeführt wird. Dies geschieht normalerweise, wenn ein Punkt entlang einer Linie auf ein Pixel fällt. Es wird dann dieses Pixel antialiasieren. Da alle Ebenen des SVG gerendert werden, wird dies für jede Ebene ausgeführt, und hier können Sie beginnen, die Kantenartefakte zu erhalten. Dies gilt insbesondere, wenn Sie mit dem Zoom des SVG spielen, da dies dazu führt, dass verschiedene Bildschirmpixel überlappen.
Hier ist ein Screenshot eines grünen Kästchens, das ein rotes Kästchen in Chrome überlappt. Der obere Bereich ist bei 100 % Seitenzoom, der untere Bereich ist vergrößert. Beachten Sie den Unterschied beim Rendern dieser Kante:
Wenn ich das Screenshot mache und hineinzoome, um die Rasterung anzuzeigen, können Sie sich ein klareres Bild davon machen, was vor sich geht:
Die ideale Lösung wäre hier, dass der SVG-Rasterizer im Browser "intelligenter" wäre und keine gestapelten Dinge rendert, aber da SVG-Elemente extern und live manipuliert werden können (da es sich nur um eine XML-Datei handelt), ist dies keine praktische Lösung für den Browser.
Stattdessen trifft der Designer diese Entscheidung, indem er die Kerben verwendet, die Sie sehen.
Übrigens ähnelt dies im Konzept dem Umgang mit der Registrierung beim Drucken durch die Verwendung von Trapping .
Das Drucken in mehreren Farben erfordert eine genaue Registrierung, um unansehnliche Lücken zu vermeiden, und ist ein Problem, wenn Artefakte aus mehreren Quellen bestehen. Ähnliche Bedenken können sogar bei digitalen Produkten auftreten, bei denen Arithmetik mit begrenzter Genauigkeit zwangsläufig zu Fehlern führt.
Das Problem, das vermieden wird, ist eines der inversen Überfüllung – wobei eine Abweichung von der beabsichtigten Grafik zu einer dünnen Linie der Hintergrundfarbe führen kann, die links von den vertikalen zusammenfallenden Kanten erscheint. Da die Farben sehr kontrastreich sind, wird die Wirkung spürbar sein (versuchen Sie, die unterbrochene Linie auch nur 1 Pixel nach links von der Vertikalen zu verschieben.
Der Ansatz soll sich nicht auf das Mischen von Tinten auswirken. Konsistente Koordinaten auf dem Bildschirm vermeiden das Problem, während Halbtonung verwendet wird, um die Farbe zu verwalten.
joojaa
Nick T
joojaa
Francisco Präsenz
joojaa
Francisco Präsenz
DA01
joojaa
DA01
CodesInChaos
joojaa
Fett
John Dvorak
joojaa
Zach Saucier