Foros del Web » Programando para Internet » PHP »

Calidad en las imagenes

Estas en el tema de Calidad en las imagenes en el foro de PHP en Foros del Web. Hola a todos Tengo un problema y es que en un servidor web cuando utilizo una función en PHP para disminuir el tamaño en pixeles ...
  #1 (permalink)  
Antiguo 09/12/2002, 19:00
 
Fecha de Ingreso: diciembre-2002
Mensajes: 21
Antigüedad: 15 años
Puntos: 0
Exclamación Calidad en las imagenes

Hola a todos

Tengo un problema y es que en un servidor web cuando utilizo una función en PHP para disminuir el tamaño en pixeles de una imagen esta funciona perfectamente bien, pero al publicar la misma función en otro servidor distinto la imagen que resulta es de bastante mala en calidad, cabe mencionar que esta imagen también es más pequeña en peso (kb) por lo que asumo que la configuración de PHP en el segundo servidor debe aplicar una compresión a la imagen. La pregunta es: ¿ como puedo modificar los valores de compresión de PHP para una imagen JPG ?

Si alguien sabe acerca de esto favor de enviarlo a [email protected]

Saludos y de antemano Gracias.

Atte
z24charly
  #2 (permalink)  
Antiguo 09/12/2002, 19:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
<comentario>
La filosofia del foro es "interactuar" entre Todos los usuarios de los foros ... Dejar un mensaje así ? no lo entiendo ...
</comentario>

Si pusieras el código que usas .. seria mas fácil decirte .. "cambia ..esto por lo otro" .. .Así solo podemos hacer sugenrencias:

Suponiendo que usa en algún punto la funcion:
imagejpeg() .. en su tercer parámetro defines el indice de compresión JPG ... (de 0 a 100) ...

Un saludo,
  #3 (permalink)  
Antiguo 09/12/2002, 21:12
 
Fecha de Ingreso: diciembre-2002
Mensajes: 21
Antigüedad: 15 años
Puntos: 0
Exclamación Gracias, pero ...

Hola, mi pregunta en si es:

¿Porque usando el mismo código y la misma imagen la calidad de la imagen de resultado de un servidor a otro es distinta?

El codigo que estoy usando es el siguiente:

---------------------------------------------------------
<?
//////////////////////////////
// * imagen a reducir $nombreimagen * //
//////////////////////////////
$nombreimagen = "../$imagen.jpg";
$imgsrc = imagecreatefromjpeg($nombreimagen);

// se obtienen las dimensiones de la imagen
$srcx = imagesx($imgsrc);
$srcy = imagesy($imgsrc);

/////////////////////////////////
// * plantilla en blanco imgtrg * //
/////////////////////////////////

$x_size = 320;
$y_size = 240;
$imgtrg = imagecreate ( $x_size, $y_size);

$facx = $x_size / $srcx;
$facy = $y_size / $srcy ;

if($facx < $facy)
$facred=$facx;
else
$facred =$facy;

$resx = $srcx * $facred;
$resy = $srcy * $facred;

imagecopyresized($imgtrg, $imgsrc, 0, 0, 0, 0, $resx, $resy, $srcx, $srcy);
imagejpeg($imgtrg, "imagenpeque.jpg");
header("content-type: image/jpeg");
imagejpeg($imgtrg);

imagedestroy($imgtrg);
imagedestroy($imgsrc);


?>
---------------------------------------------------------
De antemano Gracias otra vez

Saludos
  #4 (permalink)  
Antiguo 09/12/2002, 22:22
 
Fecha de Ingreso: diciembre-2002
Mensajes: 21
Antigüedad: 15 años
Puntos: 0
Exclamación Otra observación

también me di cuenta que en la imagen que me deforma no despliega los colores claros, les muestro los ejemplos para que vean a ver si me pueden ayudar:

esta es la imagen original en ambos servidores:

Servidor 1
http://204.181.11.242/z24/68.jpg

Servidor 2
http://z24.publiweb.com.mx/68.jpg

Al tratarlas con el código que puse arriba pueden observar como en el Servidor 1 respeta los colores mientras que en el Servidor 2 opaca los amarillos y anaranjados.

Servidor 1
http://204.181.11.242/z24/imagenes/imagen.php?imagen=68

Servidor 2
http://z24.publiweb.com.mx/imagenes/....php?imagen=68

Alguien sabe a que se pueda deber esto ?

De antemano Gracias

Saludos
  #5 (permalink)  
Antiguo 09/12/2002, 22:33
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
ImageCreate solo soporta 256 colores, por lo que si quieres calidad deberias crearla con ImageCreateTrueColor. Y conjuntamente, si vas a redimensionarla, usa ImageCopyResampled en vez de Resized, que lo hace en forma vectorial manteniendo la calidad.
  #6 (permalink)  
Antiguo 10/12/2002, 00:59
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
hmmm.. yo antes de hacer algn cambio revisaria las versiones de las librerias GD en el servidor 2, es muy probable que este usando alguna version de la GD menor a la 2.

Ademas de que las funciones que te recomienda zeus_bsas solamente pueden usarse con la version 2 o posterior de la libreria GD, asi que si tu servidor 2 no esta actaulzado en este ambito creo que no te servira de mucho.
  #7 (permalink)  
Antiguo 10/12/2002, 13:11
 
Fecha de Ingreso: diciembre-2002
Mensajes: 21
Antigüedad: 15 años
Puntos: 0
GRACIAS

Gracias a todos por su valiosa ayuda, quedó resuelto.

Un saludo

Atte
z24charly
  #8 (permalink)  
Antiguo 10/12/2002, 17:53
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Lo interesante mi amigo, principalmente en un foro donde la gente entra para aprender, es que nos comentes como fue solucionado, no te parece?
  #9 (permalink)  
Antiguo 10/12/2002, 18:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
De acuerdo

Cita:
Lo interesante mi amigo, principalmente en un foro donde la gente entra para aprender, es que nos comentes como fue solucionado, no te parece?


Un saludo,
  #10 (permalink)  
Antiguo 10/12/2002, 22:43
 
Fecha de Ingreso: diciembre-2002
Mensajes: 21
Antigüedad: 15 años
Puntos: 0
Exclamación Resuelto

quedo resuelto al cambiar como dijo zeus_bsas:

imagecreate ( $x_size, $y_size);

por:

imagecreatetruecolor ( $x_size, $y_size);

Efectivamente hubo que instalar la versión 2 de la libreria GD

Saludos y Nuevamente Gracias.
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 23:01.