Wie kann man die Farbe des PNG-Bildes mit CSS ändern
Unsere heutige Aufgabe besteht darin, die PNG-Bildfarbe mithilfe von CSS zu ändern.
Am einfachsten ist es, die Eigenschaft filter zu verwenden, um die Farbe des PNG-Bildes zu ändern.
Die Eigenschaft filter filter wendet visuelle Effekte auf ein Element (Bild) an. Es hat die folgenden Werte:
filter: none | blur() | brightness() | contrast() | drop-shadow() | grayscale() | hue-rotate() | invert() | opacity() | saturate() | sepia() | url() | initial | inherit;
Mithilfe dieser Werte können wir die Farbe des Bildes ändern.
Filter sind sehr neu in Browsern und werden nur in sehr modernen Browsern unterstützt. Sie können Filter mit dem -Webkit-Filter für Safari, Google Chrome und Opera verwenden.
Lassen Sie uns die Farbe eines Bildes Schritt für Schritt ändern:
1. HTMLerstellen
- Kopieren und fügen Sie Ihren Bildlink in den Body-Bereich ein. Hier erstellen wir zwei Bilder mit den Klassen "image1" und "image2".
<body>
<img class = "image1" src="https://www.sccpre.cat/mypng/detail/122-1229311_bird-feathers-flying-macaw-wings-birds-with-white.png"
width="500px" height="250px" alt="filter applied" />
<img class = "image2" src="https://www.sccpre.cat/mypng/detail/122-1229311_bird-feathers-flying-macaw-wings-birds-with-white.png"
width="500px" height="250px" alt="filter applied" />
</body>
2. CSS hinzufügen
Nun stellen wir Styles in die Klassen "Image1" und "Image2" ein.
- Definieren Sie die Breite beider Bilder mit der Eigenschaft width.
- Fügen Sie dann die Eigenschaft filter hinzu, um die Farbe Ihres Bildes zu ändern.
- Verwenden Sie den Wert "invert", der die Samples im Bild für das erste Bild invertiert. Hier stellen wir 100% ein, wodurch das Bild vollständig invertiert wird.
- Verwenden Sie den Wert "sepia"mit 100%, was das Bild für das zweite Bild komplett sepia macht.
<style>
img {
width:40%;
float:left;
}
.image1 {
filter: invert(100%);
-webkit-filter:invert(100%);
}
.image2 {
filter: sepia(100%);
-webkit-filter: sepia(100%);
}
</style>
Lassen Sie uns das Ergebnis unseres Codes betrachten:
Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Bild in eine andere Farbe umwandeln</title>
<style>
img {
width:40%;
float:left;
}
.image1 {
filter: invert(100%);
-webkit-filter: invert(100%);
}
.image2 {
filter: sepia(100%);
-webkit-filter: sepia(100%);
}
</style>
</head>
<body>
<h2>Die Farbe des PNG-Bildes ändern</h2>
<img class="image1" src="https://www.sccpre.cat/mypng/detail/122-1229311_bird-feathers-flying-macaw-wings-birds-with-white.png" width="500px" height="250px" alt="filter applied" />
<img class="image2" src="https://www.sccpre.cat/mypng/detail/122-1229311_bird-feathers-flying-macaw-wings-birds-with-white.png"
width="500px" height="250px" alt="filter applied" />
</body>
</html>
Ein weiteres Beispiel mit acht Werten der Eigenschaft filter gleichzeitig, um zu sehen, wie sie die Farbe des Bildes ändern:
Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Der Titel des Dokuments</title>
<style>
body {
background-color:#03030a;
min-width: 800px;
min-height: 400px
}
img {
width:20%;
float:left;
margin:0;
}
/*Filter styles*/
.saturate {
filter: saturate(3);
-webkit-filter: saturate(3);
}
.grayscale {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
}
.contrast {
filter: contrast(160%);
-webkit-filter: contrast(160%);
}
.brightness {
filter: brightness(0.25);
-webkit-filter:brightness(0.25);
}
.blur {
filter: blur(3px);
-webkit-filter: blur(3px);
}
.invert {
filter: invert(100%);
-webkit-filter: invert(100%);
}
.sepia {
filter: sepia(100%);
-webkit-filter: sepia(100%);
}
.huerotate {
filter: hue-rotate(180deg);
-webkit-filter: hue-rotate(180deg);
}
.opacity {
filter: opacity(50%);
-webkit-filter: opacity(50%);
}
</style>
</head>
<body>
<h2>Change PNG image color</h2>
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="original">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="saturate" class="saturate">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="grayscale" class="grayscale">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="contrast" class="contrast">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="brightness" class="brightness">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="blur" class="blur">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="invert" class="invert">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="sepia" class="sepia">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="huerotate" class="huerotate">
<img alt="Mona Lisa" src="http://i.stack.imgur.com/OyP0g.jpg" title="opacity" class="opacity">
</body>
</html>
Sie können auch die folgende Technik anwenden:
- Definieren Sie die Elemente <div> in einem Körperbereich. Stellen Sie IDs für Ihr Element div. Hier haben wir die IDs "original" und "changed".
<body>
<div id="original"></div>
<div id="changed"></div>
</body>
- Starten Sie das Styling von IDs. Stellen Sie Filter ein: hue-rotate; auf die ID "changed".
#changed {
-webkit-filter : hue-rotate(180deg);
filter : hue-rotate(180deg);
}
Hier sehen Sie das Ergebnis:
Beispiel
<!DOCTYPE html>
<html>
<head>
<title>Bild in eine andere Farbe umwandeln</title>
<style>
#original, #changed {
background: url('https://image.freepik.com/free-photo/orange-red-siamese-fighting-fish-betta-splendens-isolated-white-background_51519-539.jpg');
background-size: cover;
width: 30%;
margin: 0 10% 0 10%;
padding-bottom: 28%;
float: left;
}
#changed {
-webkit-filter : hue-rotate(180deg);
filter : hue-rotate(180deg);
}
</style>
</head>
<body>
<h2>Die Farbe des PNG-Bildes ändern</h2>
<div id="original"></div>
<div id="changed"></div>
</body>
</html>