errore = array(); $this->Estensione = ""; $this->originalX = 0; $this->originalY = 0; $this->originalName = ""; $this->newX = 0; $this->newY = 0; if($this->urlimage==""){ array_push($this->errore,"Scegliere un file da ridimensionare"); }elseif(!file_exists($this->urlimage) || !is_file($this->urlimage)){ array_push($this->errore,"Il file selezionato non esiste"); } if(!is_numeric($this->maxX) || !is_numeric($this->maxY) || $this->maxX<0 || $this->maxY<0){ array_push($this->errore,"L'altezza e la larghezza dell'immagine devono essere numerici"); } if(!file_exists($this->folder) || !chmod($this->folder,0777)){ array_push($this->errore,"La cartella di destinazione non esiste o non e' scrivibile"); } if($this->fisso!=0 && $this->fisso!=1){ array_push($this->errore,"La variabile di dimensione fissa deve essere 0 o 1"); } if($this->latofisso!="XY" && $this->latofisso!="X" && $this->latofisso!="Y"){ array_push($this->errore,"La variabile di lato fisso devono essere X o Y o XY"); } if(count($this->errore)>0){ return false; }else{ return true; } } /******************************************************************************* * METHOD: go() * Ridimensiona l'immagine * Input: *******************************************************************************/ function go(){ if($this->controlladati()){ $filename = basename($this->urlimage); $this->originalName = $filename; if($this->newName==""){$this->newName=$filename;} $this->Estensione = strtolower(substr($filename, strrpos($filename, "."), strlen($filename)-strrpos($filename, "."))); if($this->Estensione==".jpeg" || $this->Estensione==".jpg"){ $handle_immagine = imagecreatefromjpeg($this->urlimage); $handle_immagine_adattata=$this->adatta($handle_immagine); imagejpeg($handle_immagine_adattata, $this->folder.$this->newName, 100); }elseif($this->Estensione==".gif"){ $handle_immagine = imagecreatefromgif($this->urlimage); $handle_immagine_adattata=$this->adatta($handle_immagine); imagegif($handle_immagine_adattata, $this->folder.$this->newName); }elseif($this->Estensione==".png"){ $handle_immagine = imagecreatefrompng($this->urlimage); $handle_immagine_adattata=$this->adatta($handle_immagine); imagepng($handle_immagine_adattata, $this->folder.$this->newName, 1); }else{ array_push($this->errore,"Formato immagine non valido"); return null; } chmod($this->folder.$this->newName,0777); unset($handle_immagine); unset($handle_immagine_adattata); } } /******************************************************************************* * METHOD: adatta($handle_immagine) * Ridimensiona l'immagine con le dimensioni fisse * Input: *******************************************************************************/ function adatta($handle_immagine){ $this->originalX=imagesx($handle_immagine); $this->originalY=imagesy($handle_immagine); if($this->fisso==1){ $this->newX=$this->maxX; $this->newY=$this->maxY; }else{ if($this->latofisso=="XY"){ if ($this->originalX/$this->originalY>$this->maxX/$this->maxY) { $this->newX=$this->maxX; $this->newY=($this->originalY/$this->originalX)*$this->maxX; } else { $this->newX=($this->originalX/$this->originalY)*$this->maxY; $this->newY=$this->maxY; } }elseif($this->latofisso=="X"){ $this->newX=$this->maxX; $this->newY=($this->originalY/$this->originalX)*$this->maxX; }elseif($this->latofisso=="Y"){ $this->newX=($this->originalX/$this->originalY)*$this->maxY; $this->newY=$this->maxY; }else{ if ($this->originalX/$this->originalY>$this->maxX/$this->maxY) { $this->newX=$this->maxX; $this->newY=($this->originalY/$this->originalX)*$this->maxX; } else { $this->newX=($this->originalX/$this->originalY)*$this->maxY; $this->newY=$this->maxY; } } } $tmp_immagine = imagecreatetruecolor($this->newX, $this->newY); $handle_immagine_adattata = imagecopyresampled($tmp_immagine, $handle_immagine, 0, 0, 0, 0, $this->newX, $this->newY, $this->originalX, $this->originalY); return $tmp_immagine; } } ?>ora = date("H-i-s"); $this->data = date("Y-m-d"); if(empty($append)){ $this->apri_file_scrittura($dir,$nome_file); } else{ $this->apri_file_aggiornamento($dir,$nome_file); } } /******************************************************************************* * METHOD: apri_file_scrittura($dir,$nome_file) * apre un file in scrittura * Input: directory e nome file *******************************************************************************/ function apri_file_scrittura($dir,$nome_file){ if (($dir != "")&&($nome_file != "")){ $this->handler = @fopen($dir.$nome_file,"wb"); $this->nome_file = $nome_file; } } /******************************************************************************* * METHOD: apri_file_aggiornamento($dir,$nome_file) * apre un file in scrittura * Input: directory e nome file *******************************************************************************/ function apri_file_aggiornamento($dir,$nome_file){ if (($dir != "")&&($nome_file != "")){ $this->handler = @fopen($dir.$nome_file,"ab"); $this->nome_file = $nome_file; } } /******************************************************************************* * METHOD: crea_intestazione() * crea un intestazione per il file * Input: *******************************************************************************/ function crea_intestazione(){ $out = "Nome file : ".$this->nome_file." File generato il ".$this->data." ".$this->ora; $this->scrivi_riga($out); } /******************************************************************************* * METHOD: scrivi_riga($stringa) * scrive una riga all'interno del file * Input: stringa *******************************************************************************/ function scrivi_riga($stringa){ if ($this->handler != FALSE){ if (fwrite($this->handler,$stringa."\r\n")){ return true; } return false; } return false; } /******************************************************************************* * METHOD: scrivi($stringa) * scrive all'interno del file * Input: stringa *******************************************************************************/ function scrivi($stringa){ if ($this->handler != FALSE){ if (fwrite($this->handler,$stringa)){ return true; } return false; } return false; } /******************************************************************************* * METHOD: scrivi_riga_separatore() * scrive una riga di separazione * Input: *******************************************************************************/ function scrivi_riga_separatore(){ $this->scrivi_riga("*********************************************************"); } /******************************************************************************* * METHOD: chiudi_file() * chiude il file * Input: *******************************************************************************/ function chiudi_file(){ fclose($this->handler); } } ?>