Foros del Web » Programando para Internet » PHP »

Imagenes Distorsionads

Estas en el tema de Imagenes Distorsionads en el foro de PHP en Foros del Web. Hola amigos, , tengo un problemilla, , No puedo mostrar bien una imagen a la que cambio de tamaño, lo cambia de tamaño pero no ...
  #1 (permalink)  
Antiguo 05/07/2004, 10:26
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 14 años, 4 meses
Puntos: 105
Imagenes Distorsionads

Hola amigos, , tengo un problemilla, , No puedo mostrar bien una imagen a la que cambio de tamaño, lo cambia de tamaño pero no se muestran bien algunas o casi la mayoria de las fotos, solo unas cuantas puedes mostrarse bien pero con algunas o pequeñas deformaciones, .

Como puedo cabiar el tamaño si que afecte la calidad de la imagen. Algunas veces la cambia de color medio rojizo otras azules, y no se porque, . Manejo imagenes .JPG y utilizo un servicio de hosting que tiene compilado todas las librerias GD jpg, gif, png. y no entiendo porque. Utilizo este script para cambiar el tamaño de las imagenes:


Código PHP:
<?php
$image 
$HTTP_GET_VARS['image']; //nombre de la imagen
$type $HTTP_GET_VARS['type']; // para el tamaño de la figura, pues las
//utilizo para distintos cambios de tamaño.

switch($type)
{    case 
1: if (!$max_width)      $max_width 250;
            if (!
$max_height)      $max_height 230;
            break;
    case 
2:    if (!$max_width)      $max_width 200;
            if (!
$max_height)      $max_height 180;    
            break;
    case 
3:    if (!$max_width)      $max_width 200;
            if (!
$max_height)      $max_height 180;    
            break;
}

$size GetImageSize($image);
$width $size[0];
$height $size[1];

$x_ratio $max_width $width;
$y_ratio $max_height $height;
if ( (
$width <= $max_width) && ($height <= $max_height) ) 
{    
  
$tn_width $width;
  
$tn_height $height;
}
else 
{    if ((
$x_ratio $height) < $max_height
    {
      
$tn_height ceil($x_ratio $height);
      
$tn_width $max_width;
    }
    else 
    {
      
$tn_width ceil($y_ratio $width);
      
$tn_height $max_height;
    }
}
$src imagecreatefromjpeg($image);
if (!
$src) { /* Comprobar si ha fallado */
        
$src  imagecreate (15030); /* Crear una imagen en blanco */
        
$bgc imagecolorallocate ($src255255255);
        
$tc  imagecolorallocate ($src000);
        
imagefilledrectangle ($src0015030$bgc);
        
/* Mostrar un mensaje de error */
        
imagestring ($src155"Error cargando $nombreimg"$tc);
   }


$dst ImageCreate($tn_width,$tn_height);
ImageCopyResized($dst$src0000,$tn_width,$tn_height,$width,$height);
header('Content-type: image/jpeg');
$r imagejpeg($dstnull, -1);
ImageDestroy($src);
ImageDestroy($dst);

?>

Si alguien tiene alguna sugerencia para este problemilla, se los agradecere de antemano. .

Saludos,

Gildus
__________________
.: Gildus :.
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 20:58.