Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Recuperado la calidad de una imagen JPEG en PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Recuperado la calidad de una imagen JPEG en PHP

Recuperado la calidad de una imagen JPEG en PHP

Cuando trabajamos con imágenes trabajadas automáticamente con Php, muchas vecez nos surge un inconveniente que radica en la perdida del color y la calidad de las mismas.

Buscando en php.net, me he conseguido con una función que permite regenerar prácticamente una imagen con su color real, una de las principales deficiencias cuando usamos sistemas de Thumbnail

Esta función es: imagecreatetruecolor($ancho, $alto); El demás proceso ya lo conocemos.

<?
header("Content-type: image/jpeg");
$src_img= @imagecreatefromjpeg(‘LA IMAGEN.JPG’)
$dst_img = @imagecreatetruecolor($ANCHO,$ALTO);

@imagecopyresized($dst_img, $src_img, 0,0,0,0, $ANCHO, $ALTO, ImageSX($src_img), ImageSY($src_img));

@imagejpeg($dst_img);
@imagedestroy($dst_img);
?>

Explicando:

En primer lugar enviamos una cabecera pura con el tipo de documento: header();
Guardamos en la variable $src_img una nueva imagen creada de tipo JPEG apartir de LA IMAGEN.JPG que será la imagen que redimensionaremos o la editaremos.

Luego en la variable $dest_img, Creamos una imagen nueva con color REAL, esta será la que utilizaremos para mostrarla, nótese que no esta definidas las variables $ANCHO, $ALTO. Estas variables guardan el nuevo tamaño de la imagen que obviamente sera inferior a la original, por lo cual pueden ayudarse con la función getsizeimage(); que bueno devuelve un vector con los píxeles de X y Y , o en su efecto ImageSX() y ImageSY() para obtener en base a esos parámetros el nuevo tamaño uniforme y acorde con nuestra galería de imágenes.

Imagecopyresized(), bueno el nombre lo dice, copia solo partes de una imagen REDIMENCIONADA .

Luego mostramos la imagen con imagejpeg(); si queremos que se guarde en el directorio con sus respectivos permisos, agregaremos un nuevo parámetro:
@imagejpeg($dst_img,'NUEVAIMAGEN.JPG');

Destruimos la imagen para ahorrar memoria utilizada por imagecreatefromjpeg() y los procesos subsiguientes;

Y bueno el @ (arroba) al comienzo de cada función utilizado como ya conocen para evitar que se imprima el error en pantalla más no que se produzca si en su efecto lo hay. Si es de su preferencia pueden quitarlos.

Autor: Blasten
http://www.blasten.com/contenidos/19063



Usuarios que han visto este tema también han visto...

- Comprobar si existe el dominio del correo en PHP
- Visitantes activos con PHP y MySQL
- Ambito de variables en PHP
- Frase diaria con PHP
- Más ejemplos de reglas .htaccess


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 13-02-2012 a las 11:08:34