problemi con le funzioni di creazione thumbs e resize

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
salve:)
ho un'"issue" riguardo alla funzione Imagecopyresize

mi spiego se tengo fisse le coordinate delle immagine che voglio ridimennsionare, l'immagine viene creata coretamente 120x90,(parlo di creazione thumbs) e viene visualizzata sul web alle dimensioni richieste
ecco lo script

PHP:
list($width, $height, $type, $attr) = getimagesize($_SERVER['DOCUMENT_ROOT'].'public/foto/'.$ultimo_id.'.jpg');

// Creo la versione 120*90 dell'immagine (thumbnail)
$thumb = imagecreatetruecolor(120, 90);

$source = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'public/foto/'.$ultimo_id.'.jpg');
imagecopyresized($thumb, $source, 0, 0, 0, 0, 120, 90, $width, $height);


// Salvo l'immagine ridimensionata
imagejpeg($thumb, $_SERVER['DOCUMENT_ROOT']."public/foto/thumbnail/".$ultimo_id."_thumb.jpg", 75);
Il problema si presenta quando devo usare uno script col calcolo perché se inserisco immagini verticali, queste vengono visualizzate male. dimensioni sbagliate e qualità molto pessima (nemmeno paragonalbile a quelle dello script con dimensioni fisse di cui sopra. ecco loscript a dimensione variabile che permette d i fissare l'altezza a 100 e calcola automaticamente la larghezza:

PHP:
$imagehw=(list($width, $height,$attr,$type) =  getimagesize("public/foto/".$ultimo_id.".jpg"));
     $height = 100;
     $width = (int)(($imagehw[0]*100)/$imagehw[1]);
  $thumb = imagecreatetruecolor($width,$height);
$source = imagecreatefromjpeg($_SERVER['DOCUMENT_ROOT'].'public/foto/'.$ultimo_id.'.jpg');
imagecopyresized($thumb, $source,0,0,0,0, $width, $height,$imagehw[0], $imagehw[1]);
    imagejpeg($thumb, $_SERVER['DOCUMENT_ROOT'].'public/foto/thumbnail/'.$ultimo_id.'_thumb.jpg',100);

Non capisco il motivo. Ho studiato tutto il studiabile, tutte le funzioni, guardato esempi, riprovato mille voilte ma non VEDO ASSOLUTAMENTEerrori nello scirpt e non capisco assolutamente xché mi vengono visualizz. thumbs piu alte di 100 pixel e con una qualità scadente(pessima direi)

io so che la funzione getimagesize crea un array e quindi la prima

* è l'latezza e la seconda [1]

la lunghezza..!
grazie mille. per aiuto, in anticipo se volte mi fate un grande favore, è una settimana c eh ci sto su
:byebye:
bye
 

Zorthan

Utente Attivo
24 Feb 2007
85
0
0
Salve a tutti.
Scusate...la soluzione è questa, togliere la width! Embarrassed
era troppo semplice evidentemente :cool:



div.boxfoto img{
width:120px;:rolleyes:
}

:beer: