Ciao, sto cercando di capire come poter creare delle thumbnails dalle loro img "grandi" tramite questo script in classi che mi hanno passato...
purtroppo io è la prima volta che uso le classi, per cui sono un bel pesce fuor d'acqua... però qualcosa sono riuscito a capire....
solo che continuo ad avere questo errore

Fatal error: Call to undefined function: imagecreatefromstring() in c:\program files\easyphp1-8\www\image.php on line 32

qua sotto vi metto la pgina di prova che sto facendo...


Codice PHP:
<?php
/*
ridimensiona una immagine per creare una full (=immagine grande) ridimesionata oppure una thumbnail
@param $b_full booleano true / false per settare se creare una full ridimensionata o una thumb
@return true 
*/
class new_image{
    var 
$w_orig;
    var 
$h_orig;
    var 
$w_resized;
    var 
$h_resized;
    var 
$orig_string;
    
/*function new_image(){
    }*/
    
function new_image($w_orig$h_orig$w_resized$h_resized$orig_string){
        
$this->w_orig $w_orig;
        
$this->h_orig $h_orig;
        
$this->w_resizes $w_resized;
        
$this->h_resized $h_resized;
        
$this->orig_string $orig_string;
    }
    
  function 
resize($b_full false){//$w_orig, $h_orig
    //calcola le dimensioni dell'immagine finale in base al fatto che sia una full ridimensionata o una thumb
            
list($w_orig$h_orig$w_resized$h_resized) = $this->get_resized($b_full);//$w_orig, $h_orig
    //list($w, $h, $w_resized, $h_resized) = $this->get_resized($b_full);
    //echo $w_orig;
    
    //creo l'immagine su cui lavorare a partire dal codice binario dell'immagine uploadata che ho salvato in precedenza in $this->orig_string
            //$img_orig = "./nuovo_logo.jpg";
            //$this->orig_string = "./nuovo_logo.jpg";
    
$img_orig imagecreatefromstring($this->orig_string);
            
    
//$img_orig = imagecreatefromstring(ob_get_contents("./nuovo_logo.jpg"));
    
    //se l'immagine ha gi… la dimensione giusta non ho bisogno di ridimensionare
    
if($w_orig == $w_resized){
      
$img_for_string $img_orig;
    
//altrimenti ridimensiona...
    
}else{
      
//creo una immagine vuota con le misure ridimensionate
      
$img_resized imagecreatetruecolor($w_resized,$h_resized);
      
//copio l'immagine originale ridimensionata nella nuova immagine
      
imagecopyresampled($img_resized$img_orig1001008080$w_resized$h_resized$w_orig$h_orig);
      
$img_for_string $img_resized;
    }
    
    
//utilizzo le funzioni ob_ per 'catturare' il binario dell'immagine e saslvarlo
    
ob_start();
    
//a seconda del tipo dell'immagine utilizzo la funzione appropriata per 'buttare fuori' il binario in modo che ob_ possa catturarlo
    
switch($this->type){
      case 
"image/jpeg":
        
imagejpeg($img_for_string,'',95);
      break;
      case 
"image/pjpeg":
        
imagejpeg($img_for_string,'',100);
      break;
      
//la gif ha problemi di copyright quindi ormai Š poco supportata
      
case "image/gif":
        if (
function_exists("imagegif")){
          
imagegif($img_for_string);
        }else{
          echo 
$this->o_util->js_alert("attenzione: la versione corrente di PHP non supporta il formato gif");
          return 
false;
        }
      break;
      case 
"image/png":
        
imagepng($img_for_string);
      break;
    }
    
/*salvo il contenuto del buffer ob_ nella variabile appropriata (full o thumb)
    da questa stringa puoi salvare l'immagine in un campo blob del db o salvarla come file
    */
    
//   ********************************************
    
if($b_full$this->full_string ob_get_contents();
    else 
$this->thumb_string ob_get_contents();
    
//pulisco il buffer
    
ob_end_clean();
    
//distruggo le immagini
  //  imagedestroy($img_orig);
    
if($img_resizedimagedestroy($img_resized);
    return 
true;
  }
  
/*
calcola le dimensioni che deve avere una immagine, sia essa un full ridimensionata in base alle impostazioni del sito
  o una thumbnail
@param $b_full booleano true / false per settare se creare una full ridimensionata o una thumb
@return a_resized array con le dimensioni dell'immagine
  array(
        0 => larghezza originale,
        1 => altezza originale,
        2 => larghezza ridimensionata,
        3 => altezza ridimensionata,
        )

*/
  
function get_resized($b_full true){
    
/*questi sono parametri impostati nella classe: 
        $this->w_full_max,$this->h_full_max dimensioni massime di una full (che quindi potr… essere ridimensionata)
        $this->w_thumb_max,$this->h_thumb_max dimensioni massime di una thumb
    */ 
    
if($b_full){
        
$w_max $this->w_full_max;
        
$h_max $this->h_full_max;
    }else{
        
$w_max $this->w_thumb_max;
        
$h_max $this->h_thumb_max;
    }
    
$a_resized = array();

    
//piglio le dimensioni dell'immagine uploadata (che ho precedentemente memorizzato in $this->tmp_name)
    
list($w_orig$h_orig) = getimagesize($this->tmp_name);
    
$a_resized[0] = $w_orig;
    
$a_resized[1] = $h_orig;
    
//un po' di calcoli per stabilire se l'immagine sia rettangolare in verticale o in orizzonatale
    
if($w_orig $h_orig){
      if(
$w_orig>$w_max){
        
$a_resized[2] = $w_max;
        
$a_resized[3] = $h_orig $w_max $w_orig;
      }else{
        
$a_resized[2] = $w_orig;
        
$a_resized[3] = $h_orig;
      }
    }else{
      if(
$h_orig>$h_max){
        
$a_resized[3] = $h_max;
        
$a_resized[2] = $w_orig $h_max $h_orig;
      }else{
        
$a_resized[2] = $w_orig;
        
$a_resized[3] = $h_orig;
      }
    }

    return 
$a_resized;
  }
}
?> 
<html>
<body>

<?php
    $o_new_image 
= new new_image($w_orig$h_orig"80""80""./nuovo_logo.jpg");
    
$o_new_image->resize();

    
$img "./nuovo_logo.jpg";
    
$a_img getimagesize ($img);
    
$w_orig $a_img[0];
    
$h_orig $a_img[1];
    
    echo 
$w_orig."
"
.$h_orig."
"
;
    echo 
"<img src=\"".$img."\">";
?>


</body>
</html>
Qualcuno riesce a spiegarmi cosa c'è che non va???
ripeto che, purtroppo, sono un novello delle classi, per cui può anche essere (anzi sicuro) che sbaglio qualcosa...

Grazie!