problema di qualità e quantità usando imagecopyresize

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

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:

$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 [0] è 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

 :bye:

paolo

inviato 7 anni fa
RedLynch
X 0 X

Salve a tutti.

Scusate...la soluzione  è questa, togliere la width!  :-[

era troppo semplice evidentemente  >:D

div.boxfoto img{

width:120px;

}

risposto 7 anni fa
RedLynch
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda