Foros del Web » Programando para Internet » PHP »

redimensionar imagen proporcional

Estas en el tema de redimensionar imagen proporcional en el foro de PHP en Foros del Web. hola amigos, bueno resulta que estoy utilizando este codigo para redimensionar imagenes en mi servidor, y crear los thumbnails. Código PHP: <?php $source = "../data/img/" ...
  #1 (permalink)  
Antiguo 21/11/2009, 14:59
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Pregunta redimensionar imagen proporcional

hola amigos, bueno resulta que estoy utilizando este codigo para redimensionar imagenes en mi servidor, y crear los thumbnails.

Código PHP:
<?php
$source
="../data/img/".$cimagen.""// archivo de origen
$dest="../data/img/thumb-".$cimagen.""// archivo de destino
$width_d=100// ancho de salida
$height_d=100// alto de salida
list($width_s$height_s$type$attr) = getimagesize($source$info2); // obtengo información del archivo
$gd_s imagecreatefromjpeg($source); // crea el recurso gd para el origen
$gd_d imagecreatetruecolor($width_d$height_d); // crea el recurso gd para la salida
// desactivo el procesamiento automatico de alpha
imagealphablending($gd_dfalse);
// hago que el alpha original se grabe en el archivo destino
imagesavealpha($gd_dtrue);
imagecopyresampled($gd_d$gd_s0000$width_d$height_d$width_s$height_s); // redimensiona
imagejpeg($gd_d$dest); // graba
// Se liberan recursos
imagedestroy($gd_s);
imagedestroy($gd_d);

?>
el problema es que si la imagen original es de 800 *100 el thumbnail igual que da de 100*100 y se ve mal, entonces me gustaria hacer que cuando la redimensione cambie solo el ancho a 100 y el alto sea proporcional para mandetener las dimensiones de la imagen. xD

Si alguien me puede ayudar... Gracias. xD
  #2 (permalink)  
Antiguo 21/11/2009, 15:51
Avatar de Joystickoso  
Fecha de Ingreso: enero-2009
Mensajes: 127
Antigüedad: 15 años, 3 meses
Puntos: 3
Respuesta: redimensionar imagen proporcional

Hola, prueba usando un condicional del tipo:
Código PHP:
$tamano GetImageSize($source);
if (
$tamano[0] = $tamano[1]) {
    
$constante 1;}
else {if (
$tamano[0] > $tamano[1]) {
        
$constante $tamano[1] / $tamano[0];}
        else {
$constante $tamano[0] / $tamano[1];};
}
$width_d 100;
$height_d $width_d $constante
Así, si la imagen es de 800x600 la constante sería 0.75 (600/800=0.75), con lo que si la anchura que defines es 100, la altura sería de 75 (100*0.75=75).
La verdad es que no he usado nunca la función GetImageSize() y no se si estará bien escrito el código pero seguro que me pillas por donde voy.

Salud'Os!!
  #3 (permalink)  
Antiguo 21/11/2009, 15:52
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: redimensionar imagen proporcional

por que no lo haces por procentaje? o diviendo? ejemplo

si tu imagen es de 100px dividelo entre 2 para que esto sea 50px ;D de esta forma obtienes medidas proporcionadas
__________________
Hospedaje Web al mejor costo!
  #4 (permalink)  
Antiguo 21/11/2009, 16:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: redimensionar imagen proporcional

aqui te paso un codigo que he venido utilizando y me pone la imagen proporcionalmente

Código PHP:
$anchura=180;
$hmax=180;
$nombre=basename($_GET['image']);
$datos getimagesize($nombre);
if(
$datos[2]==1){$img = @imagecreatefromgif($nombre);}
if(
$datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
if(
$datos[2]==3){$img = @imagecreatefrompng($nombre);}
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if(
$altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
$thumb imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb$img0000$anchura$altura$datos[0], $datos[1]);
if(
$datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if(
$datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
if(
$datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
imagedestroy($thumb); 
Para llamara al script se hace asi:

Código HTML:
<img src="redimensionar.php?image=image /> 
yo utlizo el script dentro del archivo donde subo las imagenes, si lo haces igual, debes entonces llamarlo asi:

Código HTML:
<img src="archivo/redimensionar.php?image=image /> 
Saludos y espero te ayude

P.D.: yo lo utilizo via bd
  #5 (permalink)  
Antiguo 21/11/2009, 17:56
Avatar de kalvinman  
Fecha de Ingreso: octubre-2006
Ubicación: Bogota Colombia
Mensajes: 849
Antigüedad: 17 años, 6 meses
Puntos: 22
Respuesta: redimensionar imagen proporcional

Gracias ya lo logre lo hice asi:
Código PHP:
Ver original
  1. <?php
  2. $original = imagecreatefromjpeg("../data/img/".$cimagen."");
  3. $ancho = imagesx($original);
  4. $alto = imagesy($original);
  5. $nalto = $alto * 200 / $ancho;
  6. $thumb = imagecreatetruecolor(200,$nalto); // Lo haremos de un tamaño 150x150
  7.  
  8.  
  9. imagecopyresampled($thumb,$original,0,0,0,0,200,$nalto,$ancho,$alto);
  10. imagejpeg($thumb,'../data/img/thumb-'.$cimagen.'.jpg',90); // 90 es la calidad de compresión
  11. echo "".$ancho."<br>".$nalto."";
  12. ?>
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:20.