clases crear imágenes thumbs php
13 de Octubre de 2009Código
//añadir la clase
include(“./class_imagenes.php”);
//imagen origen (1280px)
$imagen = “./fondo.jpg”;
//crear objeto
$thumbnails = new Imagenes();
//indicar la imagen origen
$thumbnails->setImagen($imagen);
//indicar el formato de la imagen origen
$thumbnails->setFormato(“jpg”);
//indicar el nivel de compresión. Segun este nivel la imagen
//tendra mayor o menos calidad.
$thumbnails->setCompresion(90);
//indicar donde se creará y con que nombre el thumbnails
$thumbnails->setNombre(“./thumb_fondo.jpg”);
//indicar el tamaño del thumbnails (250)
$thumbnails->reducir(250);
La clase (class_imagenes.php):
<?php
/**
* Creación de thumbnails ( creación de imágenes en miniatura )
*
*/
class Imagenes
{
//Propiedades de la clase
private $_imagen;
private $_formato = ‘jpg’;
private $_nuevaImagen;
private $_compresion = 90;
private $_nombre;
/**
* Verificar si la libreria GD esta instalada.
*/
public function __construct()
{
$gd=gd_info();
foreach ($gd as $key => $valor)
{
if(!$valor) {
return ‘La libreria GD no esta disponible.’;
}
}
}
/**
* Indicar a la clase con que imagen vamos a trabajar, es decir, a que
* imagen le vamos a crear un thumbnails.
*/
public function setImagen($urlImagen)
{
$this->_imagen = $urlImagen;
}
/*
* Indicar el formato de que tiene la imagen. La indicada en el
* método “setImagen”.
*/
public function setFormato($ext)
{
switch($ext)
{
case “jpeg”:
$this->_imagen = imagecreatefromjpeg($this->_imagen);
$this->_formato = $ext;
break;
case “jpg”:
$this->_imagen = imagecreatefromjpeg($this->_imagen);
$this->_formato = $ext;
break;
case “png”:
$this->_imagen = imagecreatefrompng($this->_imagen);
$this->_formato = $ext;
break;
default : return “Formato de imagen NO soportado.[jpeg|jpg|png]“;
}
}
/**
* Obtener el ancho (width) de la imagen.
*/
public function getImagenX()
{
return imagesx($this->_imagen);
}
/**
* Obtener el alto (height) de la imagen.
*/
public function getImagenY()
{
return imagesy($this->_imagen);
}
/**
* Nivel de compresión de la nueva imagen.
* Máximo 100.
* Cuanto mayor sea este valor mejor sera la calidad,
* pero tambien aumentara el tamaño.
*/
public function setCompresion($compresion)
{
$this->_compresion = $compresion;
}
/**
* Idicar nombre y ruta para la nueva imagen.
*/
public function setNombre($nombre)
{
$this->_nombre = $nombre;
}
/**
* Redimensionar imagen.
* Este método recibe el ancho (x) y el alto (y) que tendra
* la nueva imagen.
* Si $y no se indica, este se añadira con un ancho proporcinal.
*/
public function reducir($x, $y = 0)
{
if($y == 0) {
//Obtener el alto proporcionalmente.
$y = imagesy($this->_imagen) * $x;
$y = $y / imagesx($this->_imagen);
}
$this->_nuevaImagen = imagecreatetruecolor($x, $y);
imagecopyresampled($this->_nuevaImagen,
$this->_imagen,
0,
0,
0,
0,
$x,
$y,
imagesx($this->_imagen),
imagesy($this->_imagen));
switch($this->_formato)
{
case “jpeg”: imagejpeg($this->_nuevaImagen,$this->_nombre,$this->_compresion);
break;
case “jpg”: imagejpeg($this->_nuevaImagen,$this->_nombre,$this->_compresion);
break;
case “png”: imagepng($this->_nuevaImagen,$this->_nombre,$this->_compresion);
break;
default : return “Formato de imagen NO soportado.[jpeg|jpg|png]“;
break;
}
}
}
?>
