![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
15/05/2008, 06:15
|
| | Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 17 años, 2 meses Puntos: 0 | |
redimensionar imagenes Hola tengo este codigo para redimensionar imagenes.. me interesa aparte de redimensionar esta, hacer otra mas peqeña y cuadara tipo 50x50 o 70x70 pero quisiera me la imagen no quedase chafada ni estirada que es lo que sucede cuando se ponen cuadradas... se puede hacer esto de alguna manera??? gracias ... un saludo Cita:
// Funcion para crear string aleatorio
function genera_aleatorio($longitud){
$exp_reg="[^A-Z0-9]";
return substr(eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())) .
eregi_replace($exp_reg, "", md5(rand())),
0, $longitud);
}
$nombre_imagen = genera_aleatorio(10); // Longitud de la cadena
//Obtener datos de la imagen
$info = getimagesize($_FILES['archivo']['tmp_name']);
//segun el caso sera jpg, gif, png
switch ($info[2]) {
case 1:
$imagen = imagecreatefromgif($_FILES['archivo']['tmp_name']); break;
case 2:
$imagen = imagecreatefromjpeg($_FILES['archivo']['tmp_name']); break;
case 3:
$imagen = imagecreatefrompng($_FILES['archivo']['tmp_name']); break;
// etcétera //
}
$original = $imagen;
// devuelve anchura de la imagen y altura
$original_w = imagesx($original);
$original_h = imagesy($original);
$max = 450; //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS
if($original_w>$original_h) {
$muestra_w = $max;
$muestra_h = intval(($original_h/$original_w)*$max);
} else {
$muestra_w = intval(($original_w/$original_h)*$max);
$muestra_h = $max;
}
// Crea una imagen en color real
$muestra = imagecreatetruecolor($muestra_w,$muestra_h);
//Copia y reescala parte de una imagen con remuestreo
imagecopyresampled($muestra,$original,0,0,0,0, $muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya
$foto = "$nombre_imagen.jpeg";
if(!imagejpeg($muestra, "fotos/$foto", "50"))
{
echo "Error al subir la imagen.";
exit;
} |