Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Promoción de webs | Rentabilidad de webs
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Recuperando la calidad de una imagen JPEG


En las imágenes trabajadas automáticamente con Php nos enfrentamos a la pérdida del color y la calidad de las mismas.


01/4/05 - Buscando en php.net he conseguido 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 resto del 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);


Explicación:

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 REDIMENSIONADA .

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, como ya sabemos, la @ (arroba) al comienzo de cada función sirve para evitar que se imprima el error en pantalla. Si es de su preferencia pueden quitarlas.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 1 comentario no revisado

 Autoría, licencia y acciones sobre este artículo

Informe de Emmanuel García De Caro*
Webmaster de Blasten.com
URL: http://www.blasten.com

Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de PHP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en PHP


 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se ha encontrado un comentario sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de PHP
Categorías
+Scripts en PHP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia