Crear thumbnails en PHP con PEAR

Bueno, para realizar esta tarea hay muchas formas de realizarla, hay muchos scripts y librerias que lo pueden hacer, y esta es otra forma mas en que se puede realizar esto de una manera sencilla y sin despeinarnos, para esto hago uso de 2 clases de PEAR que son HTTP_Upload y la otra es Image_Transform basicamente esto es lo que necesitamos para poder subir y crear nuestro thumbnail de una manera sencilla como veremos a continuacion.

Para esto tambien se me habia olvidado tenemos que tener instalado el modulo de gd para php que es php_gd si vamos a utilzar la libreria GD para realizar esto ( que en mi caso esa es la que usaremos, pero como veran tambien se pueden usar otras librerias , no necesariamente esta).

Bueno comenzaremos realizando una pequeña form para poder subir nuestro archivo, yo no hare todo el HTML solo enfatizare los puntos necesarios , que pueden ser obvios pero a veces son esos detallitos que se le pasan por alto a uno, o hay dias en que realmente uno no se levanto con el pie derecho ( tambien podria ser porque es zurdo :p) y ese dia nada le sale a uno, asi que para eso siempre se puede revisar tips de a web porque puede ser que te salve el dia :D.

el unico detalle a cuidar es que el form debe de tener la propiedad de enctype=»multipart/form-data» y tambien nuestro input debe ser tipo file type=»file» como lo veremos en este pequeño ejemplo,

form action="subir.php" method="post" enctype="multipart/form-data"
input class="button" name="userimage" type="file"
/form

Perdon por no abrir y cerrar las tags pero no se como por el momento porque si lo hago no aparece el codigo sino este es interpretado y eso no queremos :-s.

siguiendo con el tema ya que tenemos nuestro simple form miremoslo del lado de php.

solo necesitamos incluir las 2 clases antes mencionadas y estamos listos.

require_once "HTTP/Upload.php";
require_once "Image/Transform.php";

/* UPLOAD IMAGES */
/* Do the Images Upload*/

$upload = new HTTP_Upload(«es»); // aqui creamos nuestro objeto para poderlo subir y recibe como parametro el lenguaje en el cual queremos que retorne los errores.
// yo le pondre es de espaniol.
$image = $upload->getFiles(«userimage»); // aqui obtenemos los achivos subidos en este caso como nuestro input se llama userimage ese nombre colocamos y listo.
$imageObject =& Image_Transform::factory(‘GD’); // tambien creamos nuestro objeto para manipular la imagen una vez este arriba, como habia dicho antes utilizare GD para esto

$image_directory = «./imagenes/»; // a este directorio subire la imagen.
if ($image->isValid()) // aqui verifico si el objeto que recibi de userimage es valido y posee informacion
{
$moved = $image->moveTo($image_directory.»/tmp»); // aqui esta funcion sube el archivo al servidor y lo mueve hacia el directorio que le indique
if (PEAR::isError($moved))
{
//»ERROR subiendo la imagen»; verifico si se pudo subri, si no me tirara un PEAR ERROR.
//print_r($moved);
}else{

/* SI LLEGAMOS AQUI LA IMAGEN YA ESTA EN EL SERVER Y LA PODEMOS COMENZAR A MANIPULAR YUPIIIIIIIII. */
$userimages = $image->getProp(); // esta metedo nos siver para obtener todas las propiedades de la image, como que tipo de imagen es, su nombre, extension y demas.
$result = $imageObject->load($image_directory.»/tmp».$userimages[‘name’]); // asi que la cargamos con el nombre que le habiamos colocado
if (PEAR::isError($result))
{
echo «ERROR THUMBNAIL»; NUEVAMENTE VERIFICAMOS SI HAY ERROR
}else{
$imageObject->resize(125,125); // SI NO , le indicamos cual sera el tamaño que queremos para que lo rezisee (bonita mi palabra)
$imageObject->save($image_directory.$_POST[‘maindata’][‘idlisting’].».gif»,»gif»,100); // y la grabamos de nuevo, aqui de una vez aproveche para convertirla
// a gif la imagen que eso se lo hacemos saber con el 3er parametro podemos convertira a jpg, png, etc…
// y el ultimo parametro le indicamos la calidad que queremos de la imagen, estos 2 ultimos parametros son opcionales y no son
necesarios
/* END Thumbnail */
}

}
}

/* END UPLOAD IMAGES */

Asi que alli termina todo verdad, mas adelante actualizare este post para que puedan bajar ya una clase que implemente esto y un pequenio ejemplo para que lo puedan descargar y espero que les sirva, cualquier cosa pueden hacer sus preguntas aqui , y les contestare a la mayor brevedad posible.

ahhh algo que se me olvidaba que es muy importante, la carpeta a la cual deseen subir sus archivos debe de tener permisos de escritura de lo contrario les dara un error que no puede escribir a esa carpeta y no lograran hacer nada.

Para poder manipular la imagen primero tiene que ser subida al servidor de lo contrario no podran hacer nada.

Hasta una nueva ocasion.

Los comentarios están cerrados.