Ho un problema con la creazione di una thumb con altezza>larghezza.
In pratica qualunque immagine inserisco mi aggiunge una banda più o meno alta sotto l'immagine.
La procedura che uso è questa:
codice:
if (is_uploaded_file($file['tmp_name'])) {
$fileName = $this->creanomefile($file['name']);
while(file_exists($imgDir.$fileName)) $fileName = "a_".$fileName;
$filePath=$imgDir.$fileName;
$fileInfo=getimagesize($file['tmp_name']);
$width = $fileInfo[0];
$height = $fileInfo[1];
if($thumb){ // crea thumb
$thumbPath=$thumbDir.$fileName;
if($width>$height) $width=($height/$thumbHeight)*$thumbWidth;
else $height=($width/$thumbWidth)*$thumbHeight;
$image_id=imagecreatefromjpeg($file['tmp_name']);
$new_image= imagecreatetruecolor($thumbWidth,$thumbHeight);
imagecopyresampled($new_image,$image_id,0,0,0,0,$thumbWidth, $thumbHeight, $width, $height);
imagejpeg($new_image,$thumbPath,90);
imageDestroy($image_id);
imageDestroy($new_image);
}
if($maxHeight || $maxWidth){ // se vengono inserite le dimensioni
if(!$maxHeight && $maxWidth)$maxHeight=($height*($maxWidth/$width));
if($width>$height) $width=($height/$maxHeight)*$maxWidth;
else $height=($width/$maxWidth)*$maxHeight;
$image_id=imagecreatefromjpeg($file['tmp_name']);
$new_image= imagecreatetruecolor($maxWidth,$maxHeight);
imagecopyresampled($new_image,$image_id,0,0,0,0,$maxWidth, $maxHeight, $width, $height);
imagejpeg($new_image,$filePath,90);
imageDestroy($image_id);
imageDestroy($new_image);
} else move_uploaded_file($file['tmp_name'], $filePath);
}
Quando invece ho miniature con larghezza > altezza nessun problema