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
Überprüfen Sie die Transaktionsisolationsebene In...
In diesem Artikelbeispiel wird der spezifische Co...
Ich habe vor Kurzem den günstigsten Tencent-Cloud...
Inhaltsverzeichnis Der erste Schritt besteht dari...
Was ist ein MIME-TYP? 1. Zunächst müssen wir verst...
Wenn Sie den Eindruck haben, dass ein Problem mit...
Inhaltsverzeichnis Überblick Warum ein Framework ...
Um eine hohe Verfügbarkeit des Netzwerks zu gewäh...
MySQL 5.7.18 Installation und Problemübersicht. I...
1. Maven herunterladen Offizielle Maven-Website: ...
Navicat meldet beim Verbinden mit der Datenbank d...
1. Wodurch wird die Geschwindigkeit der Datenbank...
Methode 1: Setzen Sie das schreibgeschützte Attrib...
Socat muss vor der Installation von rabbitmq inst...
Bereitstellungsumgebung: Installationsversion Red...