resize e upload qualcosa non va

  • Creatore Discussione Creatore Discussione danilob
  • Data di inizio Data di inizio

danilob

Utente Attivo
3 Feb 2007
124
0
0
ciao a tutti stò cercando di fare un'upload di un'immagine e poi di ridimensionarla.. L'upload avviene correttamente mentre sbglio qualcosa nel ridimensionamento..

Mi potete da un aiuto? Ecco di seguito il codice

/* upload di files com PHP */

// specifichiamo il percorso in cui si trova la cartella destinata a ricevere i files

$percorso_uplod ="../Img/news/";


// memorizziamo le informazioni temporanee e originali riguardo il file da trasferire
$percorso_temporaneo = $_FILES["nome_file"]["tmp_name"];
$nome_file = $_FILES["nome_file"]["name"];


// trasferiamo il file con "copy()"
// e chiediamo un messaggio di conferma
if (copy($percorso_temporaneo, $percorso_uplod . $nome_file))
{
echo "File inviato con successo |";

// altrimenti stabiliamo con else un messaggio da visualizzare in caso di errore
}
else
{
echo "Impossibile eseguire l'upload di questo file";
}

//inizio script ridimensionamento
// Ottengo le informazioni sull'immagine originale
list($width, $height, $type, $attr) = getimagesize($_FILES['nome_file']['tmp_name']);

// Creo la versione 120*90 dell'immagine (thumbnail)
$thumb = imagecreatetruecolor(120, 90);
$source = imagecreatefromjpeg($_FILES['nome_file']['tmp_name']);
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);

// Salvo l'immagine ridimensionata
imagejpeg($thumb, $percorso_uplod.$nome_file, 75);
 
scusa se mi intrometto ma sto cercando anch'io di fare una galleria che non eseguiva le tumb, ma caricava gli originali, prima facevo un controllo sui tipi (jpeg o gif o png), mi sono accorto che le imm erano pjpeg e quindi ho dovuto fare

if ($t == 'image/jpeg' or $t== 'image/pjpeg'){$temp = @imagecreatefromjpeg($pic);}
elseif ($t == 'image/gif'){$temp = @imagecreatefromgif($pic);}
elseif ($t == 'image/png'){$temp = @imagecreatefrompng($pic);}

senza pjpeg non faceva le tumb

ciao
p.s.
non sono un esperto di php
 
Ok

sono riuscito a inserire il codice funzionante x il resize delle immagini. Lo posto xchè potrebbe servire ad altri e vi ringrazio tutti x l'aiuto:

PS: Io ho inserito il resize solo se l'immagine supera i 430 px di larghezza..

<?
////////////////////////////////* upload e resize di files com PHP *//////////////////////

// specifichiamo il percorso in cui si trova la cartella destinata a rcevere i files

$percorso_uplod ="../Img/news/";

// memorizziamo le informazioni temporanee e originali riguardo il file da trasferire
$nome_file_tmp = $_FILES["nome_file"]["tmp_name"];
$nome_file = $_FILES["nome_file"]["name"];

//se ci sono immagini verifico la larghezza per eventualmente ridimensionarla a 430

if($nome_file!="")
{
// apertura dell'immagine originale
$src = imagecreatefromjpeg($nome_file_tmp) or die ("Impossibile aprire l'immagine originale");
$larghezza = imagesx($src);

if ($larghezza>430)
{

$img = $nome_file; // percorso al file dell'immagine
$dest = $percorso_uplod.$nome_file; // directory di salvataggio delle miniature create

// dimensioni della miniatura da creare
$thumbWidth = 430; // larghezza
$thumbHeight = 322; // altezza
// livello di compressione della miniatura
$thumbComp = 100;

// creazione dell'immagine della miniatura
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight) or die("Impossibile creare la miniatura");

// copio l'immagine originale in quella della miniatura ridimensionandola
imagecopyresized($thumb, $src, 0, 0, 0, 0, $thumbWidth, $thumbHeight, imageSx($src), imageSy($src)) or die("Impossibile ridimensionare l'immagine");

// salvataggio miniatura
imagejpeg($thumb, $dest, $thumbComp) or die("Impossibile salvare la miniatura");


}else{
// trasferiamo il file con "copy()"
// e chiediamo un messaggio di conferma
copy($nome_file_tmp, $percorso_uplod . $nome_file);
}
}
?>
 
guarda se ti può interessare per resizare sia in larg che alt


@list($width, $height, $type, $attr) = @getimagesize($pic);
$max_w = 100;
$max_h = 100;
$ratio = @min($max_w/$width,$max_h/$height);

// Verifico che l'immagine originale sia più grande delle dimensioni massime 100*100pxl
if ($ratio < 1){
// Individuo le nuove dimensioni da assegnare all'immagine
$w = @floor($ratio*$width);
$h = @floor($ratio*$height);


p.s.
non ho scritto io il codice, ma preso da tutorial claudio garau
 

Discussioni simili