Farbe im PNG ändern

Hallo zusammen,

ich möchte eine Farbe in einem Bild ändern. Es handelt sich um ein grünes Auto. Wie mache ich daraus ein z.B. rotes Auto?
Es soll sich nur die grüne Farbe ändern, der Rest soll die Farbe behalten.
Denke es müsste mit imagecolorset gehen aber ich schnalls nich :smiley:

$colorToReplace=imagecolorexact('http://www.dragme.de/bilder/autobilder/opel_corsa_c.png',$rgb['0'],$rgb['128'],$rgb['0']);
imagecolorset('http://www.dragme.de/bilder/autobilder/opel_corsa_c.png',$colorToReplace,204,0,0);

 <div>
 <b>".$modell." ".$mk."</b><br />
 <img src='bilder/autobilder/corsa_c_png.'/><br />
 2002 - 2006<br />
 125 PS<br />
 </div>

So sieht das Bild aus:

http://www.dragme.de/bilder/autobilder/opel_corsa_c.png

Mit einer Pixelgrafik ist das meiner Meinung nach nicht möglich.
Du konntest es jedoch mit einer Vektorgrafik lösen, dazu kannst du z.B. mit Photoshop das Auto vektorisieren. Hier sollten sich dann die Pfade einfärben lassen.

Doch, das geht

Gibts was das PHP nicht kann :smiley:

Wäre dann vermutlich diese Funktion oder?
https://secure.php.net/manual/de/function.imagecolorset.php

Danke für eure Antworten.
Das Bild hab ich als Vektorgrafik erstellt und dann in PNG umgewandelt. Mir geht’s im Endeffekt darum die Farbe einstellen zu können ohne für jedes Auto 100 PNG (mit allen möglichen Farben) zu erstellen :slight_smile:

Na dann würden sich SVG ja bestens eignen:
https://css-tricks.com/using-svg/

Hab das ganze jetzt auf eine einfache Art und Weise gelöst. Wie man bereits oben im angefügten Bild sieht ist das Auto jetzt transparent. Hintergrund ist hellgrau (wie bei der Website) und über den Background kann ich die Farbe des Autos einstellen. Sogar mit Farbverlauf. Mehr brauch ich nicht.

style='background: linear-gradient(to bottom, rgba(".$r.",".$g.",".$b.",1) 35%, rgba(0,0,0,1)) 65%;'

Die Farbe wird über die Variablen r+g+b gesteuert.

Danke. Das Thema hat sich erledigt :slight_smile: