Ankündigung

Einklappen
Keine Ankündigung bisher.

Bild einfärben

Einklappen

Neue Werbung 2019

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

  • Bild einfärben

    Hiho,
    ich versuche ein Bild einzufärben
    aber wenn ich das richtig mitbekommen habe scheint imagefilter() ja nicht mehr zu gehen....bei mir gehts auf alle fälle nicht.

    Hat jemand eine Idee wie man das machen könnte?
    Ich überlege ob es nicht geht die Pixel einfach einzeln abzugehen und neueinzufärben...aber wie bekomme ich die Farbe die ein bestimmter Pixel hat?


  • #2
    Re: Bild einfärben

    Zitat von Skinwalker
    Hiho,
    ich versuche ein Bild einzufärben
    aber wenn ich das richtig mitbekommen habe scheint imagefilter() ja nicht mehr zu gehen....bei mir gehts auf alle fälle nicht.
    also laut Manual geht imagefilter erst ab PHP 5
    http://www.php.net/manual/de/function.imagefilter.php
    Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

    Kommentar


    • #3
      wie gesagt suche ich nach einer manuellen möglichkeit -.-

      Kommentar


      • #4
        Spiel dir doch einfach das neuen PHP auf den Server. Deine alten Scripte funktionieren trotzdem und du kannst auch neue Funktionen benutzen.

        Kommentar


        • #5
          wenn diese möglichkeit eine möglichkeit wäre hätte ich es getan.... geht aber nicht. warum? weil der hoster dann geld sehen will....

          letztlich habe ich eine funktionierende möglichkeit gefunden:

          dazu benötigt man einfach das normale bild und eine maske die an schwarzen flächen kennzeichnet welche bereiche eingefärbt werden sollen...das war für mich nötig da es darum geht bei einer Comic-Grafik die Haare zu färben.

          PHP-Code:
          <?php
          $hairImg 
          ImageCreateFromPNG("image.png") or die ('failed to create Hair');
          $hairMask ImageCreateFromPNG("image_mask.png") or die ('failed to create Hair');

          // Define the new color
          $lay_over['red'] = 0;
          $lay_over['green'] = 52;
          $lay_over['blue'] = 204;

          // First Step: Grayscale
          for($i=0$i<$y$i++){
              for(
          $j=0$j<$x$j++){
                  
          $pos imagecolorat($hairImg$j$i);
                  
          $f imagecolorsforindex($hairImg$pos);
                  
                  
          $posM imagecolorat($hairMask$j$i);
                  
          $mask imagecolorsforindex($hairMask$posM);
                  
                  
          $gst $f["red"]*0.15 $f["green"]*0.5 $f["blue"]*0.35;
                  if(
          $mask['red'] == && $mask['green'] == && $mask['blue'] == 0){
                      
          $col imagecolorresolve($hairImg$gst$gst$gst);
                      
          imagesetpixel($hairImg$j$i$col);
                  }
              }
          }

          // Then Lay the Color over the Grayscale 
          $x imagesx($hairImg);
          $y imagesy($hairImg);

          for(
          $i=0$i<$x$i++){
              for(
          $j=0$j<$y$j++){
                  
          $pos imagecolorat($hairImg$i$j);
                  
          $f imagecolorsforindex($hairImg$pos);
                  
                  
          $posM imagecolorat($hairMask$i$j);
                  
          $mask imagecolorsforindex($hairMask$posM);
                  
                  
          $gst $f["red"]*0.15 $f["green"]*0.5 $f["blue"]*0.35;
                  if(
          $mask['red'] == && $mask['green'] == && $mask['blue'] == 0){
                      
          $r $f["red"] * 0.5 $lay_over['red'] * 0.5;
                      
          $g $f["green"] * 0.5 $lay_over['green'] * 0.5;
                      
          $b $f["blue"] * 0.5 $lay_over['blue'] * 0.5;
                      
          $col imagecolorresolve($hairImg$r$g$b);
                      
          imagesetpixel($hairImg$i$j$col);
                  }
              }
          }

          ImagePNG($hairImg,"hair.png",100) or die('failed to create PNG');
          ImageDestroy($hairImg) or die('failed to destroy');

          print 
          '
          [img]hair.png[/img]'
          ;
          ?>
          Theoretisch kann man den Grayscale-Teil sicher auch direkt einbinden aber so gehts erst mal....

          so recht zufrieden bin ich mit dem Ergebnis aber nicht...naja..

          Kommentar


          • #6
            http://www.cix88.de/cix_php/?ORD=php_grafik_effekte

            Das Prinzip von Graustufen ist fast das gleiche, nur andere Wert

            Kommentar


            • #7
              ah spitze danke vielmals ^^
              ich habe das mit der "Multiplizieren"-Dings kombiniert und ein schönes Ergebnis ^^

              Kommentar


              • #8
                Nette Effekte-Sammlung haste da, CIX88!
                Tabellenlayouts sind out, Browsergames sind schei$$e und die Erde ist eine Scheibe.

                Kommentar

                Lädt...
                X