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>