Primero creamos una copia de la imagen desde archivo, la igualamos a $fuente, ya que allí quedará un identificador de tipo ENTERO (INT) para dirigirnos a la imagen creada, esto es necesario ya que será de esta imagen que haremos la previsualización (Thumbnail).
$fuente = @imagecreatefromgif($ruta);
Nota: Recuerde que el @imagecreatefromgif() es para imagenes gif, si quiere crear jpeg o png solamente cambie el gif :
@imagecreatefromjpeg($ruta) ó @imagecreatefrompng($ruta)
Ahora obtendremos la anchura y altura de la imagen original, esto es necesario para poder hacer la copia de la imagen, para ello utilizamos las funciones imageSX y imageSY , que reciben como parametro un identificador de imagen (en este caso $fuente, que es el identificador de la imagen original) y devuelven la anchura y altura de la imagen respectivamente.
Ahora creamos una imagen nueva en blanco con la anchura y altura que queremos para la previsualización (Thumbnail) y que será la que se le devuelva al usuario cuando se le llame, ya sea directamente en el browser o por medio de la etiqueta IMG de html.
Ahora lo más importante, copiaremos la imagen original a la imagen nueva, lo cual hará que al tener un menor tamaño (la imagen nueva), la copia de que hacemos de la original se ajustara al tamaño de esta.
Utilizamos la funcion ImageCopyResized() la cual sirve para copiar "partes" de una imagen a otra por medio de coordenadas, pero en nuestro caso no necesitamos un pedazo, necesitamos copiar toda la imagen en todo el espacio de la nueva imagen, por ello damos las coordenadas totales de las imágenes.
Esto puede sonar un poco confuso, por eso es mejor que mires la documentacion oficial en http://www.php.net/ para información sobre los parametros que recibe esta función.
Listo, ya tenemos nuestra imagen, ahora debemos indicarle al navegador que vamos a devolver una imagen de tipo gif, para ello enviamos la cabecera diciendo el tipo de contenido que enviaremos al navegador.
Nota: Recuerde, si el formato es jpeg o png solamente cambie el gif :
image/jpeg ó image/png
Ahora devolvemos la imagen directamente al browser(navegador) del usuario.
imageGif($imagen);
Nota: Recuerde, si el formato es jpeg o png solamente cambie el gif : imageJpeg($imagen) o imagePng($imagen)
Bien espero haya quedado claro, pero vamos a ver otro aspecto, que tal si no queriamos devolver la imagen, lo que queriamos era guardar la nueva imagen (Thumbnail) en el servidor, para su uso posterior?...
Al ponerle un segundo parametro al imageGif($imagen,"imagenPequena.gif"), Lo lograremos, en este caso guardaria la imagen que acabamos de crear en el servidor, especificamente en la misma carpeta con el nombre de "imagenPequena.gif".
Esto puede ser muy util, ya que si queremos crear thumbnails de todas las imagenes en un directorio, podemos hacer un loop que lea los archivos del directorio, y repita el proceso anterior(de crear imagen en blanco y copiar) y guarde las nuevas imagenes para su uso posterior, realmente es una herramienta con muchos usos.
Nota: Cabe recordar que su servidor tiene que tener soporte para manipular imágenes, según el tipo que desee utilizar, en caso de no tenerlo el servidor le dará un mensaje de error como "Jpeg is no support..." dependiendo del formato de imagen.
Suerte y hasta el próximo tutorial!
Usuarios que han visto este tema también han visto...
- Evitar que se muestren errores en PHP
- Test de velocidad de conexión a Internet en PHP
- Interfaz de navegación por pestañas con Ajax y PHP
- Detectar si el navegador soporta WML con PHP
- Grafica gd de usuarios en PHP
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.