Bueno yo creo las imagenes con esta clase mira
Código PHP:
Ver original<?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()
{
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->_formato = $ext;
break;
case "jpg":
$this->_formato = $ext;
break;
case "png":
$this->_formato = $ext;
break;
default : return "Formato de imagen NO soportado.[jpeg|jpg|png]";
}
}
/**
* Obtener el ancho (width) de la imagen.
*/
public function getImagenX()
{
}
/**
* Obtener el alto (height) de la imagen.
*/
public function getImagenY()
{
}
/**
* 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.
}
$this->_imagen,
0,
0,
0,
0,
$x,
$y,
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;
}
}
}
?>
con esta clase solo lo haces asi:
Código PHP:
Ver original//thumb
include("image.php");
//imagen origen
$imagen = "carpeta/nombre de la imagen";
//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/nuevo_nombre");
//indicar el tamaño del thumbnails (250)
$thumbnails->reducir(150);
como ves solo funciona con jpg, pero se puede arreglar para png y gif, además hay que saber la ruta de la imagen suerte.
otra cosa más facil es que extraigas la ruta de la imagen y la redimensiones con javascript o con el mismo php para no crear la imagen de nuevo en fin eso es cosa tuya.