comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Como generar un Thumbnail en PHP usando GD (manual de php)

  • 0 Respuestas
  • 935 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado godmurdoc

  • *
  • Underc0der
  • Mensajes: 31
  • Actividad:
    0%
  • Reputación 0
  • viviendo el under dia a dia
    • Ver Perfil
    • Email
« en: Junio 30, 2011, 01:09:26 am »
Antes que nada avisar que se requieren las librerías GD para poder realizar los thumbnails. Y en función de la versión de GD, podremos usar una u otra función

Primero pegaré el código de una función con la que generaremos directamente un thumbnail de alta calidad.
Código: PHP
  1. function thumbjpeg($imagen,$altura) {
  2.  
  3. // Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
  4. $dir_thumb = "thumbs/";
  5.  
  6. // Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
  7. // el thumbnail se llamaría "tn_imagen1.jpg"
  8. $prefijo_thumb = "tn_";
  9. $camino_nombre=No tienes permisos para ver links. Registrate o Entra con tu cuenta("/",$imagen);
  10.  
  11. // Aquí tendremos el nombre de la imagen.
  12. $nombre=No tienes permisos para ver links. Registrate o Entra con tu cuenta($camino_nombre);
  13.  
  14. // Aquí la ruta especificada para buscar la imagen.
  15. $camino=No tienes permisos para ver links. Registrate o Entra con tu cuenta($imagen,0,No tienes permisos para ver links. Registrate o Entra con tu cuenta($imagen)-No tienes permisos para ver links. Registrate o Entra con tu cuenta($nombre));
  16.  
  17. // Intentamos crear el directorio de thumbnails, si no existiera previamente.
  18. if (!No tienes permisos para ver links. Registrate o Entra con tu cuenta($camino.$dir_thumb))
  19. No tienes permisos para ver links. Registrate o Entra con tu cuenta ($camino.$dir_thumb, 0777) or No tienes permisos para ver links. Registrate o Entra con tu cuenta("No se ha podido crear el directorio $dir_thumb");
  20.  
  21. // Aquí comprovamos que la imagen que queremos crear no exista previamente
  22. if (!No tienes permisos para ver links. Registrate o Entra con tu cuenta($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
  23. echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>n";
  24. $img = No tienes permisos para ver links. Registrate o Entra con tu cuenta($camino.$nombre) or No tienes permisos para ver links. Registrate o Entra con tu cuenta("No se encuentra la imagen $camino$nombre<br>n");
  25.  
  26. // miramos el tamaño de la imagen original...
  27. $datos = No tienes permisos para ver links. Registrate o Entra con tu cuenta($camino.$nombre) or No tienes permisos para ver links. Registrate o Entra con tu cuenta("Problemas con $camino$nombre<br>n");
  28.  
  29. // intentamos escalar la imagen original a la medida que nos interesa
  30. $ratio = ($datos[1] / $altura);
  31. $anchura = No tienes permisos para ver links. Registrate o Entra con tu cuenta($datos[0] / $ratio);
  32.  
  33. // esta será la nueva imagen reescalada
  34. $thumb = No tienes permisos para ver links. Registrate o Entra con tu cuenta($anchura,$altura);
  35.  
  36. // con esta función la reescalamos
  37. No tienes permisos para ver links. Registrate o Entra con tu cuenta ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
  38.  
  39. // voilà la salvamos con el nombre y en el lugar que nos interesa.
  40. No tienes permisos para ver links. Registrate o Entra con tu cuenta($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
  41. }
  42. }

Para llamar a la función sencillamente hacer:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
thumbjpeg($imagen, 125);
En este caso, '$imagen', es la imagen que queremos reducir, y '125', es la altura en píxeles que queremos que tenga la imagen reducida, de modo que el ancho quede proporcionado respecto a la imagen original.

Con la instrucción “or die()” se mostrará en pantalla el mensaje entrecomillado solo en el caso de que fallara la primera sentencia de la línea.

NOTAS:

Si en lugar de GD2 disponemos de GD1, no podremos utilizar la función imagecopyresampled() y deberíamos conformarnos con la función imagecopyresized() , que utiliza los mismos parámetros, lo malo es que ésta última da como resultado una imagen de calidad más pobre. A cambio, es mucho más rápida que la anterior.

Así si tenemos GD2, podemos usar la que más nos interese, si queremos CALIDAD y no nos importa el número de ciclos consumidos en el servidor.

imagecopyresampled();

en caso contrario:

imagecopyresized();

Si lo que queremos es crear imágenes "al vuelo", sin guardarlas en ningún archivo (cosa poco recomendable si usamos la función de más calidad), el segundo parámetro de la función imagejpeg() no se debe de poner, quedando la llamada en el scritp que hay más arriba:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
imagejpeg($thumb);
Bueno, démonos cuenta que este script solo sirve para reducir imágenes de tipo JPEG, no de otro, para otros formatos, tan solo habría que cambiar un par de funciones por las correspondientes en los formatos que nos interesen.
Ejemplo:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
imagecreatefromjpeg() por imagecreatefrompng() o imagecreatefromwbmp()
o etc.

y

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
imagejpeg() por imagepng() o imagewbmp()
o etc.

No tienes permisos para ver links. Registrate o Entra con tu cuenta

bye













« Última modificación: Marzo 27, 2014, 06:04:40 pm por Expermicid »

 

¿Te gustó el post? COMPARTILO!



WEB DDOS SYSTEM - Como una botnet pero con visitantes de sitios web

Iniciado por alexander1712

Respuestas: 5
Vistas: 2723
Último mensaje Octubre 02, 2013, 05:09:20 pm
por alexander1712
Como crear un buscador de palabras

Iniciado por syskc0

Respuestas: 0
Vistas: 1026
Último mensaje Julio 14, 2010, 11:09:17 am
por syskc0
Como conectarse a una base de datos

Iniciado por syskc0

Respuestas: 5
Vistas: 2141
Último mensaje Julio 14, 2010, 01:47:12 pm
por 303010
Como crear una imagen variable de php

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1309
Último mensaje Febrero 24, 2010, 11:37:49 am
por ANTRAX
Como saber que navegador usa el visitante.

Iniciado por Xt3mP

Respuestas: 0
Vistas: 1478
Último mensaje Enero 25, 2011, 08:51:47 am
por Xt3mP