Hola amigos. Estoy usando una funcion que encontre por alli para redimensionar fotos y guardar en carpeta. El problema es que cuando la foto que subo es menor que el tamaño del resize, no me aplica las medidas exactas a la foto grande ni al thumbnail. Este es el código:
Código PHP:
Ver originalinclude ('funciones.php');
$foto_nombre = $_POST['foto_nombre'];
function redimensionar($type, $img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
$defecto = $foto_nombre;
// crear imagen desde original
switch($type)
{
}
} else {
}
//$img_nueva_altura = 50;
// se calcula la relación alto/ancho
$aspect_ratio = $new_h_R/$new_w_R;
$aspect_ratio2 = $new_w_R/$new_h_R;
if ($new_w_R >= $new_h_R){
// se ajusta al nuevo tamaño
$img_nueva_altura = abs($img_nueva_anchura * $aspect_ratio); }
else{$img_nueva_anchura = abs($img_nueva_altura * $aspect_ratio2);} // crear imagen nueva
// redimensionar imagen original copiandola en la imagen. La imagen se reajustará al nuevo tamaño
// guardar la imagen redimensionada donde indica $img_nueva
imagejpeg($thumb,$img_nueva,$img_nueva_calidad); }
}
//inseción de imagen
//$fileName = $max."_".$_FILES['userfile']['name'];
$extension = explode(".",$_FILES['foto']['name']); //$fileName = $extension[0].".".$extension[1];
$fileName = $foto_nombre.".".$extension[1];
$tmpName = $_FILES['foto']['tmp_name'];
$fileSize = $_FILES['foto']['size'];
$fileType = $_FILES['foto']['type'];
//echo $tmpName;
$uploaddir = "images/galeria/large/";
$uploadfile = $uploaddir . $fileName ;
chmod($uploadfile, 0644); //echo "File is valid, and was successfully uploaded.\n";
//redimensionar
$source=$uploadfile; // archivo de origen
$dest=$uploaddir.$foto_nombre."th.".$extension[1]; // archivo de destino
$dest2=$uploaddir.$foto_nombre.".".$extension[1]; // archivo de destino
// echo "nuevoarchivo ".$dest;
/* $img_nueva_anchura=120;
$img_nueva_altura=120;
$img_nueva_calidad=100;*/
//redimensionar_jpeg($source,$dest,$img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad);
// Ejemplo
redimensionar("jpg",$source,$dest,54,54,95);
redimensionar("jpg",$source,$dest2,445,400,95);
//finredimensionar
} else {
// echo "Possible file upload attack!\n";
//print_r($_FILES);
}
No entiendo que está funcionando mal. Por favor si pueden darme algunas sugerencias. Gracias