Bienvenid@ webmaster Acceso Directo :
ir al home
Home
Productos y Servicios
Artículos y Secciones
Foros de Discusión
Registro de Usuarios
Usuarios
Canal del Webmaster
Contactos
©2004 Blasten.com
Envía tus Articulos


ArtículoComentariosRecomendarGuardarImprimir
Reducir Imagenes en tama?o por PHPResaltado
Dependiendo de la versi?n de PHP y la librer?a GD, es posible crear y manipular im?genes de tipo JPEG, GIF, PNG y WBM, aunque en las ?ltimas versiones no hay soporte para gr?ficos de tipo GIF. Para saber que formatos soporta tu instalaci?n de PHP solo tienes que ejecutar el siguiente script:


<?php
if (imagetypes() & IMG_PNG) {
echo 
'Formato PNG soportado.<br>';
}
if (
imagetypes() & IMG_JPG) {
echo 
'Formato JPG soportado.<br>';
}

if (
imagetypes() & IMG_GIF) {
echo 
'Formato GIF soportado.<br>';
}
if (
imagetypes() & IMG_WBMP) {
echo 
'Formato WBMP soportado.<br>';
}

?>



Al ser el m?s complejo (o al menos completo) de realizar, haremos una funci?n para redimensionar y ajustar la calidad de im?genes JPEG. Crear una funci?n similar para im?genes PNG o WBMP deber?a resultaros sencillo.


La funci?n recibe 5 par?metros:
- Localizaci?n completa de la imagen original.

- Localizaci?n completa de la nueva imagen, es decir, el "thumbnail" que vamos a crear.

- Calidad o compresi?n de la nueva imagen. Los valores posibles van de 0 (peor calidad, mayor compresi?n) a 95 (mejor calidad, menor compresi?n).

- Anchura de la nueva imagen en pixels.
- Altura de la nueva imagen en pixels.

A prop?sito de la calidad de las im?genes, debemos tener en cuenta que si la calidad de la imagen original era de por ejemplo el 75% y si especificamos que la calidad de la imagen redimensionada sea del 85%, la calidad de esta no mejorara, se mantendr? igual y solo conseguiremos incrementar el tama?o en bytes de la imagen. Por lo tanto, antes de aplicar esta funci?n a una imagen debemos conocer su calidad actual.

Siguiendo con el mismo tema, los valores de calidad o compresi?n que se le puede aplicar a una imagen JPEG van del 0% al 95%. Lo l?gico ser?a que fueran del 0% al 100%, pero por alg?n extra?o motivo, la imagen resultante de una compresi?n del 97% es id?ntica a la imagen comprimida al 95%.

A continuaci?n puedes ver la funci?n redimensionar_jpeg() y su aplicaci?n:


<?php

function redimensionar_jpeg($img_original$img_nueva$img_nueva_anchura$img_nueva_altura,
$img_nueva_calidad) {

// crear imagen desde original
$img ImageCreateFromJPEG($img_original);

// crear imagen nueva
$thumb ImageCreate($img_nueva_anchura,$img_nueva_altura);

// redimensionar imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,

ImageSX($img),ImageSY($
img));

// guardar la imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);

}
redimensionar_jpeg('/home/yo/foto.jpg','/home/yo/mini_foto.jpg',100,100,75);

?>




EDITAR LAS IMAGENES DE TODO UN DIRECTORIO

Ahora no tienes m?s que aplicar la funci?n a cada una de las im?genes que desees redimensionar. Tambi?n existe la posibilidad de ampliar la funcionalidad del script y hacer que este redimensione todas las im?genes de un directorio concreto. Por ejemplo, ejecutar el siguiente script en un directorio redimensionar?a todas las im?genes de tipo JPEG del mismo:


<?php 

function 
redimensionar_jpeg($img_original,$img_nueva,$img_nueva_anchura,

$img_nueva_altura,$img_nueva_calid 
ad
) { 

// crear imagen desde original 
$img ImageCreateFromJPEG($img_original); 

// crear imagen nueva 
$thumb ImageCreate($img_nueva_anchura,$img_nueva_altura); 

// redimensionar imagen original copiandola en la imagen 
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,

ImageSX($img),ImageSY($ 
img)); 

// guardar la imagen redimensionada donde indicia $img_nueva 
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad); 



$dir opendir('.'); 
while(
false !== ($file readdir($dir))) { 
if (!
is_dir($file) && $file != '.' && $file != '..' && 
exif_imagetype($file)==2) { 

// aplicar funcion 
redimensionar_jpeg($file,'mini_'.$file,100,100,75).'<br>'// ASIGNO EL DIRECTORIO ('mini_') DONDE SE GUARDA 

LA IMAGEN EDITADADEBE TENER PERMISO 777CHMOD 


closedir($dir); 

?> 



El trozo de c?digo a?adido al script simplemente recorre todos los archivos del directorio en busca de im?genes de tipo JPEG y cada vez que encuentra uno, le aplica la funci?n redimensionar_jpeg().




Artículos Relacionados
Limitar el tama?o de una cadena (PHP)
Tama?o de archivo en byte, Kb, Mb, y Gb (PHP)
Thumbnail para Imagenes (PHP)
Galeria de imagenes con phpgd (PHP)
Galeria de imagenes sin phpgd (PHP)

Más Artículos relacionados >>
Artículo anterior Artículo siguiente
Descargar este contenido

Autor: Martin
Fecha: 4/7/2004 (565 días) Lecturas : 8.271
Valoración :
Comentarios: 79

YIaShprXctOk

las vagas sized roulett
Valoración:
muJsdHEB

american credit union =-(((
Valoración:
QqgmTqThWuNLw

health insurance 5675
Valoración:
vlUwqkRqZqPr

buy namebrand tramadol 6824
Valoración:
vDjXwxziOxFmZYfcN

home insurance 89615
Valoración:
EJxAVzgYLpV

tramadol 9670
Valoración:

Agregar a mi lista
Solicitar Ayuda


subir página
Los contenidos expuestos en blasten.com® son propiedad única de sus autores, por lo cual se prohíbe la reproducción total o parcial de los contenidos expuestos en este sitio sin previo consentimiento del autor y el editor. Para intercambios de contenidos haga clic aqui y contáctenos. El logotipo y el nombre BLASTEN así como todos los gráficos expuestos son propiedad exclusiva de este portal.
©2004-2005 blasten.com Network