Farbe eines eingelesenen Bildes ersetzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Farbe eines eingelesenen Bildes ersetzen

    Hallo

    Ich bastele an einem Script, in dem ich erst ein Bild einlesen will und dann bestimmte Farben in diesem Bild durch andere ersetzen lasse.

    Dazu nutze ich die Funktion imagecolorset.

    Das Ersetzen klappt auch ganz gut mit selber vorher erstellen Bildern, aber eben nicht mit einem anderen Bild, das ich einfach nur einlese.

    Dies ist mein Versuch, ich hoffe ihr könnt mir helfen.

    PHP-Code:
    $image=ImageCreateFromGIF($bild); //Das Bild ist vorhanden
    $farbe=imagecolorallocate($image,0,0,0);
    imagecolorset($image,$farbe,244,244,244); 

    imagegif($image);
    imagedestroy($image); 

  • #2
    was heißt klappt nicht?

    Kommentar


    • #3
      Wenn ich mit den php-Funktionen ein zweifarbiges Bild erstelle, dann kann ich mit imagecolorset eine der Farben ersetzen.
      Wenn ich aber ein zweifarbiges Bild mittels imagecreatefromgif einlese und die Funktion verwende, wird die Farbe nicht ersetzt.

      Kommentar


      • #4
        überprüfe doch, welche farben in dem eingelesenen bild vorkommen.

        Kommentar


        • #5
          ich habe zum Ausprobieren des Scripts erstmal ein einfaches Bild mit den Farben schwarz und weiß mit einem Grafkprogramm erstellt.
          Also die Farben sind dementsprechend schon bekannt.
          Trotzdem ersetzt er Sie nicht.

          Oder muss ich die Farben erst durch eine spezielle Funktion aus dem Bild ermitteln? Ich dachte dies sei durch imagecolorallocate gewährleistet.

          Kommentar


          • #6
            überprüfe lieber mit imagecolorat(), welche farben php sieht.

            Kommentar


            • #7
              Klasse!

              Danke schonmal. Habe etwas damit rumprobiert und es nun hinbekommen, dass er die Farbe ändert.

              Allerdings ist das Problem damit noch nicht ganz behoben. Ich muss ja jetzt angeben, WO er die Farbpalette ermitteln soll. Es sollte aber eigentlich so laufen, das ich ihm die zu ersetzende Farbpalette sage und PHP dementsprechend alle Flächen ersetzt...

              Gibt es da vllt eine Möglichkeit, wie ich ohne Pixelangaben machen zu müssten die Farbpalette festlegen kann?



              Habe mir jetzt auch mal mit imagecolorallocate den Palttenindex ausgeben lassen. Weiß war 1, schwarz 0, und wenn ich mit imagecolorallocate die Farbe schwarz (0,0,0) nachfrage, gibt er mit 2 aus...

              Wieso ist denn das eine neue Palette?

              Zuletzt geändert von ComicKopf; 31.07.2007, 16:23.

              Kommentar


              • #8
                Danke schonmal. Habe etwas damit rumprobiert und es nun hinbekommen, dass er die Farbe ändert.
                und wie?
                ... so laufen, das ich ihm ...
                www.das-dass.de
                Gibt es da vllt eine Möglichkeit, wie ich ohne Pixelangaben machen zu müssten die Farbpalette festlegen kann?
                du meinst mit der maus einen pixel auswählen? das geht mit js, soweit ich weiß.

                Kommentar


                • #9
                  Wie:
                  Ich habe imagecolorallocate auf deinen Hinweis hin in imagecolorat geändert.
                  Dadurch hat er die richtige Farbpalette gefunden und genau wie gewünscht ersetzt.

                  Habe mir jetzt auch mal mit imagecolorallocate den Palettenindex ausgeben lassen. Weiß war 1, schwarz 0, und wenn ich mit imagecolorallocate die Farbe schwarz (0,0,0) nachfrage, gibt er mir 2 aus...


                  Ich meinte nicht, dass man die Pixel mit der Maus auswählen soll, sondern dass (richtig?) man einfach die zu ersetzende Farbe angibt.

                  Kommentar


                  • #10
                    Ok, ich habs geschafft...

                    ich habe dank deiner Hilfestellungen die Funktion imagecolorexact gefunden und verstanden, die genau mein Problem löst!
                    Danke!

                    Kommentar

                    Lädt...
                    X