Hola, hace tiempo que estoy renegando con un codigo para poder redimensionar imagenes proporcionalmente y que a la vez tengan poco peso en KB. Pude programar la parte en que la foto sube al servidor al igual que el thumbnail. Ahora me faltaria el codigo para que redimensione proporcionalmente segun un ancho dado.
Aquí les paso parte del codigo que tengo para que me ayuden en que tendria que agragar para poder redimensionar imagenes.
Código PHP:
Ver original<?php
$nombre = $_POST["textNombre"];
$status = "";
($_POST["action"] == "upload") or
die ("Error al subir la imagen."); // obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
($archivo != "") or
die ("Error al subir la imagen ".$archivo);
// guardamos el archivo a la carpeta "Fotos"
$destino = "Fotosprueba/".$prefijo."_".$archivo;
$ancho = $info_imagen[0];
$alto = $info_imagen[1];
if($ancho>=$alto)
{
$nuevo_alto = round($alto * 500 / $ancho,0); $nuevo_ancho=$medida;
}
else
{
$nuevo_ancho = round($ancho * 500 / $alto,0); $nuevo_alto =$medida;
}
imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); return false;
return true;
// (copy($_FILES['archivo']['tmp_name'],$destino)) or die ("Error al subir la imagen ".$archivo);
// $status = "La imagen <b>".$archivo."</b> se ha subido correctamente!";
// echo $status; ?>
<?
//aquí empieza el código de creación del thumbnail
$source=$destino; // archivo de origen
$dest="Fotosprueba/Thumbs/".$prefijo."_".$archivo; // archivo de destino
$width_d=130; // ancho de salida
$height_d=98; // alto de salida
list($width_s, $height_s, $type, $attr) = getimagesize($source, $info2); // obtengo información del archivo
imagecopyresampled($gd_d, $gd_s, 0, 0, 0, 0, $width_d, $height_d, $width_s, $height_s); // redimensiona
// Se liberan recursos
$carga = "INSERT INTO aficionados (foto, thumb, descripcion) VALUES ('$destino','$dest','$nombre')";
?>
Desde ya muchas gracias y espero que me puedan ayudar. Saludos.