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

  • Gast-Avatar
    Ein Gast erstellte das Thema Bild einfärben.

    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?

  • Ricochet
    antwortet
    Nette Effekte-Sammlung haste da, CIX88!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ah spitze danke vielmals ^^
    ich habe das mit der "Multiplizieren"-Dings kombiniert und ein schönes Ergebnis ^^

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    http://www.cix88.de/cix_php/?ORD=php_grafik_effekte

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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    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..

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wie gesagt suche ich nach einer manuellen möglichkeit -.-

    Einen Kommentar schreiben:


  • HStev
    antwortet
    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

    Einen Kommentar schreiben:

Lädt...
X