Visualizzazione risultati 1 fino 3 di 3

Discussione: [PHP][GD] Problema Render CARTOON

  1. #1
    L'avatar di matt93
    matt93 non è connesso Utente
    Data registrazione
    01-09-2008
    Messaggi
    241

    Predefinito [PHP][GD] Problema Render CARTOON

    Ho appena creato in php un render in stile Cartoon.

    i risultati sono a mio parere decenti...
    http://matt93.no-ip.info/cartoon/index3.php?r=85
    http://matt93.no-ip.info/cartoon/index3.php?r=65
    http://matt93.no-ip.info/cartoon/index3.php?r=45

    ora ho provato ad aggiungere anche i colori, ma ho un piccolo problema, i colori non vengono renderizzati e viene ritornato un colore a caso -_-"
    il codice che uso è il seguente:
    Codice PHP:
    <?
    if(isset($_GET['r']) && is_numeric($_GET['r'])){$r=$_GET['r'];}else{$r=10;}
    if(isset(
    $_GET['d']) && is_numeric($_GET['d'])){$d=$_GET['d'];}else{$d=10;}


    $file="image.png";

    $im=imagecreatefrompng($file);
    $xsize=imagesx($im);
    $ysize=imagesy($im);
    $im2=imagecreate($xsize,$ysize);
    $c_black=imagecolorallocate($im2,0,0,0);
    $c_white=imagecolorallocate($im2,255,255,255);
    imagefill($im2,0,0,$c_white);

    for(
    $y=1;$y<$ysize;$y++){
    for(
    $x=1;$x<$xsize;$x++){
    $c=imagecolorat($im,$x,$y);
    $color=imagecolorsforindex($im, $c);
    if((
    $y+1)<$ysize){
    $c=imagecolorat($im,$x,$y+1);
    $colorya=imagecolorsforindex($im, $c);
    }
    $doit=false;

    if(!isset(
    $prec)){
    $prec=$color;
    }
    if(
    $prec['red'] < ($color['red']-$r) || $prec['red'] > ($color['red']+$r)){
    imagesetpixel($im2,$x,$y,$c_black);
    $doit=true;
    }

    if(
    $prec['green'] < ($color['green']-$r) || $prec['green'] > ($color['green']+$r)){
    imagesetpixel($im2,$x,$y,$c_black);
    $doit=true;
    }

    if(
    $prec['blue'] < ($color['blue']-$r) || $prec['blue'] > ($color['blue']+$r)){
    imagesetpixel($im2,$x,$y,$c_black);
    $doit=true;
    }

    if(
    $color['red'] < ($colorya['red']-$r) || $color['red'] > ($colorya['red']+$r)){
    imagesetpixel($im2,$x,$y,$c_black);
    }

    if(
    $color['green'] < ($colorya['green']-$r) || $color['green'] > ($colorya['green']+$r)){
    imagesetpixel($im2,$x,$y,$c_black);
    }

    if(
    $color['blue'] < ($colorya['blue']-$r) || $color['blue'] > ($colorya['blue']+$r)){
    imagesetpixel($im2,$x,$y,$c_black);
    }

    if(
    $doit==true){
    $x++;
    }else{
    // non è un bordo, renderizzo come colore: QUI NON FUNZIONA!!!!!
    $colore=imagecolorallocate($im2,$color['red'],$color['green'],$color['blue']);
    imagesetpixel($im2,$x,$y,$colore);
    }

    $prec=$color;
    }
    }

    header('Content-type: image/png');
    imagepng($im2);
    ?>

  2. #2
    Guest

    Predefinito

    I link non funzionano

  3. #3
    Guest

    Predefinito

    Forse il localhost di matt è spento..perchè punta al suo pc! ^^ XD

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •