Foros del Web » Programando para Internet » PHP »

Perdidas de calidad al reducir tamaño de una imagen con PHP

Estas en el tema de Perdidas de calidad al reducir tamaño de una imagen con PHP en el foro de PHP en Foros del Web. Buenas, Estoy reduciendo el tamaño de una imagen con la libreria GD, en concreto haciendo uso de la función "ImageCopyResampled" y las perdidas de calidad ...
  #1 (permalink)  
Antiguo 21/03/2005, 18:31
 
Fecha de Ingreso: marzo-2005
Mensajes: 114
Antigüedad: 19 años, 1 mes
Puntos: 0
Perdidas de calidad al reducir tamaño de una imagen con PHP

Buenas,

Estoy reduciendo el tamaño de una imagen con la libreria GD, en concreto haciendo uso de la función "ImageCopyResampled" y las perdidas de calidad son muy grandes.

Ejemplo de imagen reducida con la libreria GD:



Ejemplo de imagen reducida con Photoshop:



¿Qué puedo hacer para no tener tantas perdidas de calidad? GRACIAS
  #2 (permalink)  
Antiguo 21/03/2005, 22:59
 
Fecha de Ingreso: enero-2004
Ubicación: Salto
Mensajes: 484
Antigüedad: 20 años, 3 meses
Puntos: 2
Primero deberías de ver q la versión de GD sea la 2 o superior, luego podrías hacer algo así
$dst_img = imagecreatetruecolor($ancho,$alto);
imagecopyresampled($dst_img, $src_img,0,0,0,0,$ancho,$alto,$ancho_original,$alt o_original);
Usa "imagecreatetruecolor"
Saludos
__________________
Dios dira que esto no es justo, pero lo sera...
  #3 (permalink)  
Antiguo 22/03/2005, 05:42
 
Fecha de Ingreso: marzo-2005
Mensajes: 114
Antigüedad: 19 años, 1 mes
Puntos: 0
Buenas, la versión de PHP es 4.3.9, la configuración de la librería GD segun phpinfo(); es la siguiente:

Cita:
GD Support -> enabled
GD Version -> bundled (2.0.28 compatible)
FreeType Support -> enabled
FreeType Linkage -> with freetype
GIF Read Support -> enabled
GIF Create Support -> enabled
JPG Support -> enabled
PNG Support -> enabled
WBMP Support -> enabled
XBM Support -> enabled
Estoy utilizando las funciones tal y como dices, y los resultados son los que puse.. :(

Código:
$img2=@ImageCreateTrueColor($ancho_nuevo,$alto_nuevo);

@ImageCopyResampled($img2,$img,0,0,0,0,$ancho_nuevo,$alto_nuevo ,$anchura,$altura);
¿Existe algun método para no tener tantas perdidas? SALUDOS
  #4 (permalink)  
Antiguo 22/03/2005, 16:37
Avatar de SebastiFast
Colaborador
 
Fecha de Ingreso: mayo-2004
Ubicación: Venezuela
Mensajes: 1.586
Antigüedad: 19 años, 11 meses
Puntos: 45
Statika, sé que ya leiste la respuesta, pero la copio aquí para los otros usuarios.

Sin duda la pérdida de calidad es producida por el nivel de compresión utilizado. 6.440 bytes frente a 34.365 bytes. En Diseño gráfico no te podemos orientar ya que son scripts en php. Mejor investiga si es posible configurar los niveles de compresión para formato jpg.

Con lo poco que entiendo de los scripts de php, dedusco en el siguiente código tomado de los comentarios en Manual PHP

Código PHP:
if ($dstType == "png")
         @
imagepng($newHandle$dstPath.".png");
     else if (
$dstType == "jpg")
         @
imagejpeg($newHandle$dstPath.".jpg"90);
     else if (
$dstType == "gif")
         @
imagegif($newHandle$dstPath.".gif");
     else 
El valor de 90 en la cuarta línea es el nivel de compresión.

__
__________________

"Nunca es tarde para empezar, mientras sea ahora" ____________ Cher

  #5 (permalink)  
Antiguo 22/03/2005, 17:22
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 22 años, 8 meses
Puntos: 9
Lo mejor en cuanto a la calidad es 100

checa muy bien en www.php.net/imagejpeg
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:05.