Ich habe schon immer Graustufenbilder bevorzugt, da sie meiner Meinung nach künstlerischer wirken. Viele Bildbearbeitungsprogramme wie Photoshop können Ihre Farbbilder problemlos in Graustufen umwandeln. Es gibt sogar Optionen zum Anpassen der Farbtiefe und des Farbtons. Aufgrund der unterschiedlichen Browser lässt sich dieser Effekt im Web leider nicht so einfach erzielen. 1. CSS-Filter Die Verwendung der CSS-Filtereigenschaft ist wahrscheinlich die einfachste Möglichkeit, ein Bild in Graustufen umzuwandeln. In der Vergangenheit verfügte der Internet Explorer über eine proprietäre CSS-Eigenschaft namens „Filter“, um benutzerdefinierte Effekte, einschließlich Graustufen, anzuwenden. Jetzt ist die Filtereigenschaft Teil der CSS3-Spezifikation und wird in einigen Browsern unterstützt, darunter Firefox, Chrome und Safari. Zuvor haben wir auch Webkit-Filter erwähnt, die Bilder nicht nur in Graustufen, sondern auch in Sepia und mit Unschärfeeffekten anzeigen. Durch Hinzufügen des folgenden CSS-Stils kann das Bild grau werden Code kopieren Der Code lautet wie folgt:img { -webkit-filter: Graustufen(1); /* Webkit */ Filter: grau; /* IE6-9 */ Filter: Graustufen(1); /* W3C */ } Unterstützt die Browser IE6–9 und Webkit (Chrome 18+, Safari 6.0+ und Opera 15+) (Hinweis: Dieser Code hat keine Auswirkungen auf Firefox.) 2. Javascript Die zweite Methode ist die Verwendung von JavaScript. Technisch gesehen sollten alle Browser, die JavaScript unterstützen, JavaScript unterstützen, einschließlich IE6 und darunter. Code kopieren Der Code lautet wie folgt:var imgObj = document.getElementById('js-image'); Funktion grau(imgObj) { var Leinwand = Dokument.createElement('Leinwand'); var canvasContext = canvas.getContext('2d'); var imgW = imgObj.width; var imgH = imgObj.height; Leinwand.Breite = BildW; Leinwand.Höhe = BildH; canvasContext.drawImage(imgObj, 0, 0); var imgPixels = canvasContext.getImageData(0, 0, imgW, imgH); für(var y = 0; y < imgPixels.height; y++){ für(var x = 0; x < imgPixels.width; x++){ var i = (y * 4) * imgPixels.width + x * 4; var avg = (imgPixels.data[i] + imgPixels.data[i + 1] + imgPixels.data[i + 2]) / 3; imgPixels.data[i] = Durchschnitt; imgPixels.data[i + 1] = Durchschnitt; imgPixels.data[i + 2] = Durchschnitt; } } canvasContext.putImageData(imgPixels, 0, 0, 0, 0, imgPixels.Breite, imgPixels.Höhe); gibt canvas.toDataURL() zurück; } imgObj.src = grau(imgObj); 3. SVG Die dritte Methode ist von SVG Filter. Sie müssen eine SVG-Datei erstellen, den folgenden Code darin schreiben und sie als ***.svg speichern Code kopieren Der Code lautet wie folgt:<svg xmlns="http://www.w3.org/2000/svg"> <filter id="Graustufen"> <feColorMatrix Typ="Matrix" Werte="0,3333 0,3333 0,3333 0 0 0,3333 0,3333 0,3333 0 0 0,3333 0,3333 0,3333 0 0 0 0 0 1 0"/> </filter> </svg> Mithilfe der Filtereigenschaften können wir dann über die ID des Elements in der SVG-Datei eine Verbindung zur SVG-Datei herstellen. Code kopieren Der Code lautet wie folgt:img { Filter: URL ('img/gray.svg#Graustufen'); } Sie können es auch in eine CSS-Datei einfügen, zum Beispiel: Code kopieren Der Code lautet wie folgt:img { Filter: URL ('URL("data:image/svg+xml;utf8,<svg%20xmlns='http://www.w3.org/2000/svg'><filter%20id='Graustufen'><feColorMatrix%20type='matrix'%20values='0.3333%200.3333%200.3333%200.3333%200.3333%200%200%200.3333%200.3333%200.3333%200.3333%200%200%200%200%200%201%200'/></filter></svg>#Graustufen");') } Zusammenfassend können wir zur Unterstützung von Graustufeneffekten in allen Browsern die oben genannten Methoden zusammen mit dem folgenden Codeausschnitt verwenden. Dieser Code unterstützt Firefox 3.5+, Opera 15+, Safari, Chrome und IE. Code kopieren Der Code lautet wie folgt:img { -Webkit-Filter: Graustufen (100 %); -webkit-filter: Graustufen(1); Filter: Graustufen (100 %); Filter: URL ('../img/gray.svg#Graustufen'); Filter: grau; } Wir können den obigen Code mit dem JavaScript-Ansatz nutzen und den CSS-Filter einfach als Fallback bereitstellen, falls JavaScript deaktiviert ist. Mithilfe von Modernizr lässt sich diese Idee ganz einfach umsetzen. Code kopieren Der Code lautet wie folgt:.no-js img { -Webkit-Filter: Graustufen (100 %); -webkit-filter: Graustufen(1); Filter: Graustufen (100 %); Filter: URL ('../img/gray.svg#Graustufen'); Filter: grau; } OK, Sie können den coolen Effekt in Ihrem Browser sehen! ! |
<<: Einfaches Beispiel für HTML-Textformatierung (ausführliche Erklärung)
>>: So implementieren Sie ein Hover-Dropdown-Menü mit CSS
Überblick Lassen Sie uns einige SQL-Anweisungen z...
Ich erstelle schon lange Websites, habe aber immer...
In CSS werden Element-Tags entsprechend den unter...
Schwarm drei virtuelle Maschinen 132,133,134 1. I...
#Case: Gehaltsstufen von Mitarbeitern abfragen WÄ...
Auf Webseiten begegnen wir häufig dieser Situatio...
HTML-Formulare werden häufig verwendet, um Benutz...
Automatische Aktualisierung der Webseite: Fügen Si...
Das einfache, nahtlos scrollende Karussell weist ...
Heute werde ich Ihnen zeigen, wie Sie das Linux-S...
Laderegeln der Require-Methode Laden aus dem Cach...
Poste zuerst das Effektbild: Damit der Gesamtstil ...
Im Linux-System gibt es einen Dateityp namens Lin...
Bei der Installation von mysql5.7.18 ist folgende...
Beim Öffnen ausländischer Websites werden häufig ...