Salve,
Oggi ho provato a fare uno script per l'upload e un per il resize, funziona tutto solamnte che funziona solo la parima volta cioè io carico un immagine poi faccio il resize e mi crea l'immagine rimpicciolità (e poi la cancello), succesivamente se carico una nuova immagine e provo a fare il resize della stessa l'immagine stessa sapete che fà? non mi crea la miniatura dell'immagine che ho caricato ora ma dell'immgine precedente! Anche, se io lo eliminata allora ho provato:
1) Ho cancellato la cartella, ho caricato una nuova immagine, ma mi crea sempre quella di prima
2) Ho provato a creare una cartella con un nome divreso e, questa volta, mi crea sempre la miniatura delle prima immagine caricata in quella cartella (in poche parole lo stesso errore)...
Io non so, se è un problema di script comunque ve lo posto qui sotto
Codice PHP:
<?
include("classe_resize.php");
$resize = new resize;
$resize->urlimage = "prova/1.jpg";
$resize->fisso = 0;
$resize->maxX = 180;
$resize->maxY = 180;
$resize->latofisso = "X";
$resize->folder = "prova/";
$resize->newName = "180.jpg";
$resize->go();
if(count($resize->errore)==0){
echo "Nome file originale: ".$resize->originalName."<br>";
echo "Altezza file originale: ".$resize->originalY."<br>";
echo "Larghezza file originale: ".$resize->originalX."<br>";
echo "Nuova Altezza: ".$resize->newY."<br>";
echo "Nuova Larghezza: ".$resize->newX."<br>";
}else{
echo implode("<br>", $resize->errore);
}
?>
Codice PHP:
<?
class resize{
var $urlimage = "prova/1.jpg";
var $maxX = 180;
var $maxY = 180;
var $fisso = 0;
var $latofisso = "XY";
var $folder = "prova/";
var $newName = "180.jpg";
function controlladati(){
$this->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 è 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;
}
}
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);
}elseif($this->Estensione==".gif"){
$handle_immagine = imagecreatefromgif($this->urlimage);
}elseif($this->Estensione==".png"){
$handle_immagine = imagecreatefrompng($this->urlimage);
}else{
array_push($this->errore,"Formato immagine non valido");
return null;
}
$handle_immagine_adattata=$this->adatta($handle_immagine);
imagejpeg($handle_immagine_adattata, $this->folder.$this->newName, 80);
chmod($this->folder.$this->newName,0777);
unset($handle_immagine);
unset($handle_immagine_adattata);
}
}
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;
}
}
?>