Foros del Web » Programando para Internet » PHP »

Redimensionar imagenes manteniendo la proporcion.

Estas en el tema de Redimensionar imagenes manteniendo la proporcion. en el foro de PHP en Foros del Web. Estoy haciendo un sistema de noticias con archivos .txt y tengo un formulario para cargar textos y imagenes. Las imagenes son generadas desde un archivo ...
  #1 (permalink)  
Antiguo 10/02/2005, 15:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 13 años
Puntos: 0
Redimensionar imagenes manteniendo la proporcion.

Estoy haciendo un sistema de noticias con archivos .txt y tengo un formulario para cargar textos y imagenes.
Las imagenes son generadas desde un archivo denominado "ver.php" y este es el codigo:

<?
if($id){
Header("Content-type: image/jpeg");
$im = imagecreatefromjpeg("$id");
Imagejpeg($im,'',100);
ImageDestroy($im);
}
?>

La imagen es visualizada en "noticias.php" con una llamada:

<img src='ver.php?id=$columna[4]'>

Bien, funciona perfecto, pero necesito que el archivo "ver.php" sea modificado para limitar el ancho maximo de una imagen cargada por ej. 200 px (SOLO SI ESTA EXCEDIERA DE DICHO TAMAÑO ) y se fuera menor que no la modificara. Por supuesto manteniendo la proporcion cuando la modificara en ancho y alto, sin deformacion para evitar desfasajes en las imagenes de gran tamaño.

ALGUNA AYUDA???????

Pueden descargar el script completo de la siguiente direccion:
http://web.n-anuket.net/~pepitoc/not...onimagenes.zip

Gracias.
  #2 (permalink)  
Antiguo 24/02/2005, 21:47
Avatar de walo  
Fecha de Ingreso: mayo-2004
Mensajes: 310
Antigüedad: 13 años, 6 meses
Puntos: 0
Ahi tenes que hacer algunas cuentitas para sacar el aspecto de radio, esto es la proporcion entre el ancho y el alto.

Por ejemplo, lo monitores son de 4:3, eso significa que son 4 unidades de ancho por 3 de alto.

Analiza este codigo

Código PHP:

$TNMaxX 
180;  //Ancho maximo
$TNMaxY 120;  //Alto maximo
$img = @ImageCreateFromJpeg("imagen.jpg");

// determina el tamaño de la imagen
$imx = @ImageSX($img);
$imy = @ImageSY($img);

//determina proporcion en unidades
$x $imx/$TNMaxX;
$y $imy/$TNMaxY;

// calcula la escala
if($x>$y$scale $TNMaxX/$imx;
if(
$x<$y$scale $TNMaxY/$imy;
if(
$x==$y$scale $TNMaxY/$imy;

//Escala la imagen
$x intval($imx*$scale);
$y intval($imy*$scale);

//crea la imagen escalada
$newImg[email protected]ImageCreateTrueColor($x$y);
@
imagecopyresized($newImg$img0000$x$y$imx$imy); 


 
//imprime la imagen escalada
@imagejpeg($newImg,'',60); 
  #3 (permalink)  
Antiguo 25/02/2005, 04:17
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 384
Antigüedad: 12 años, 10 meses
Puntos: 0
esto lo que hace es redimensiona la imagen verdad? Joder muy buen script. Gracias walo, me servira de mucha ayuda :)

Y para controlar el tamaño tambien como se haria? Es que esto de tratamiento de imagen no lo domino :S... todavia jeje
__________________
m!ketrix
CINE25 - Red Social de Cine
byinspiroh
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:12.