Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Redimensionar imágenes con PHP
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Redimensionar imágenes con PHP

A continuación mostraremos cómo redimensionar imágenes automáticamente utilizando la librería GD de PHP.
Para que todo funcione correctamente, necesitamos tener instalada en nuestro servidor la versión 2.0.1 o superior de dicha librería, que puede descargarse gratuitamente desde http://www.boutell.com.
Primero crearemos un archivo al que llamaremos redimensionar.php, que contendrá el siguiente código:

<?php
$anchura=180;
$hmax=180;
$nombre=basename($_GET['imagen']);
$datos = getimagesize($nombre);
if($datos[2]==1){$img = @imagecreatefromgif($nombre);}
if($datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
if($datos[2]==3){$img = @imagecreatefrompng($nombre);}
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
$thumb = imagecreatetruecolor($anchura,$altura);
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
if($datos[2]==1){header("Content-type: image/gif"); imagegif($thumb);}
if($datos[2]==2){header("Content-type: image/jpeg");imagejpeg($thumb);}
if($datos[2]==3){header("Content-type: image/png");imagepng($thumb); }
imagedestroy($thumb);
?>

 

$anchura y $hmax son respectivamente el ancho y el alto máximo que definimos para la imagen que queremos mostrar.
La función getimagesize genera, al ser invocada, un array que contiene en cada uno de sus índices los siguientes datos de la imagen que recibe como parámetro:
[0]=ancho
[1]=alto
[2]=tipo de imagen (1:gif,2:jpg,3:png)
Las funciones imagecreatefromjpeg,imagecreatefromgif,imagecreatefrompng devuelven un identificador de imagen que representa la imagen obtenida desde el nombre de archivo pasado por parámetro.
La función imagecreatetruecolor crea una imagen nueva en color real (true color) y devuelve un identificador de imagen representando una imagen en blanco de tamaño anchura por altura.
Por último, imagecopyresampled() copia una porción rectangular de una imagen sobre otra, suavizando los valores de los píxeles mediante interpolación, de forma que al reducir el tamaño de una imagen aún mantiene una buena claridad. imagecopyresampled debe incluir –dentro del paréntesis– estos parámetros (en este orden):
$thumb que es el identificador de la imagen destino, es decir el papel fotográfico que hemos creado con imagecreatetruecolor.
$img que es el identificador de la imagen original (negativo) obtenido con imagecreatefromjpeg o imagecreatefromgif o imagecreatefrompng.
Xd e Yd son las coordenadas de un punto situado en la esquina superior izquierda del papel a partir del que queremos que se impresione la imagen. Si queremos una imagen sin márgenes pondremos 0,0 y, si queremos dejar márgenes en blanco, habrá que poner los anchos de esos márgenes (izquierdo y superior) respectivamente.
Xf e Yf nos servirán para reencuadrar la foto original recortando por la izquiera y por arriba, respectivamente, los anchos que se indiquen aquí en pixels.
$anchura y $altura, como dijimos antes, son respectivamente el ancho y el alto máximo que definimos para la imagen que queremos mostrar.
Fx e Fy indican el ancho y el alto de la porción del original que tratamos de reproducir.
Con header("Content-type: image/gif") e imagegif($thumb) (o jpeg o png, según sea el caso) mostramos la imagen y con imagedestroy($thumb)liberamos la memoria asociada a la imagen.

Para utilizar la imagen, deberemos llamarla de la siguiente manera:

<img src='redimensionar.php?imagen=tu_imagen_origunal.jpg'>




Autor: Panino_5001
http://www.programacionweb.net/articulos/articulo/?num=312

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

- heredoc en PHP
- Ordenación de Arrays con QuickSort en PHP
- Manejo de múltiples archivos en PHP
- Imagen de validación de formularios con PHP
- Mostrar la fecha en Español con PHP


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 26-05-2012 a las 09:41:39