En el artículo anterior, nos enfocamos en cargar y manipular imágenes con PHP. Aprendimos a rotar, redimensionar, escalar o voltear una imagen. También aprendimos sobre los diferentes filtros y la matriz de convolución. Esos tutoriales también cubrieron algunos usos prácticos de la biblioteca GD como cambiar el tamaño de todas las imágenes en un directorio o agregar marcas de agua en varias imágenes a la vez.
Además de usar GD para manipular imágenes normales, también podemos crear nuestra propia desde cero. Se pueden utilizar diferentes funciones en la biblioteca para dibujar formas básicas como elipses, círculos, rectángulos, polígonos y líneas simples. Con algunas matemáticas, estas formas pueden crear patrones agradables. También hay funciones disponibles para dibujar texto en la imagen renderizada, lo que abre muchas posibilidades..
Este tutorial te enseñará cómo dibujar formas básicas en PHP y cómo representar texto usando tu fuente favorita.
Aprenderemos sobre formas básicas en esta sección y luego cubriremos el grosor de línea, los pinceles y los estilos de línea más adelante..
Puede dibujar una línea recta simple entre dos puntos dados usando el línea de imagen ($ imagen, $ x1, $ y1, $ x2, $ y2, $ color)
función. los $ imagen
parámetro es un recurso de imagen que se habrá creado anteriormente utilizando funciones como imagecreatetruecolor ()
o imagecreatefromjpeg ()
. Estaremos usando imagecreatetruecolor ()
a lo largo de este tutorial para crear nuevas imágenes desde cero. La función dibujará una línea horizontal si $ y1
es igual a $ y2
. Del mismo modo, dibujará una línea vertical si $ x1
es igual a $ x2
.
La función imagearc ($ image, $ cx, $ cy, $ width, $ height, $ start, $ end, $ color)
Puede dibujar arcos circulares utilizando. $ cx
y $ cy
como su centro. los $ ancho
y $ altura
Los parámetros determinan el tamaño del arco en diferentes ejes. los $ inicio
y $ fin
los parámetros especifican el ángulo inicial y final del arco en grados. Si desea dibujar arcos completos de 0 a 360 grados, puede utilizar la alternativa imageellipse ($ image, $ cx, $ cy, $ width, $ height, $ color)
función.
Puedes dibujar rectángulos sobre una imagen usando la imagerectangle ($ imagen, $ x1, $ y1, $ x2, $ y2, $ color)
función. los $ x1
y $ y1
los valores determinan la esquina superior izquierda del rectángulo. los $ x2
y $ y2
Los valores determinan la esquina inferior derecha. También hay un imagepolygon ($ image, $ puntos, $ num_points, $ color)
Función, que puede crear un polígono con cualquier número de lados o puntos. los $ puntos
el parámetro es una matriz donde dos elementos se emparejan para obtener las coordenadas de un punto específico.
Otra función llamada imageopenpolygon ()
se ha agregado a PHP 7, que no dibuja una línea entre el primer y el último punto.
En el siguiente ejemplo, hemos utilizado todas estas funciones para crear un dibujo lineal con una cabaña, el sol y el suelo..
Lo importante aquí es simplemente averiguar el valor de las diferentes coordenadas. Quería dibujar todo en relación con el tamaño de la imagen original, así que usé el $ img_height
y $ img_width
Variables para calcular las coordenadas de diferentes puntos..
La imagen de arriba tiene un par de problemas como líneas muy finas y sin colorear. Todos estos problemas pueden solucionarse fácilmente usando funciones como engrosamiento de la imagen ()
y imagefilledrectangle ()
.
los engrosamiento de imagen ($ imagen, $ espesor)
La función establece el grosor de las líneas renderizadas al dibujar rectángulos, polígonos, arcos, etc. Por ejemplo, la configuración $ espesor
a 5 harás cualquier figura dibujada usando imagerectangle ()
, imagearc ()
, imagepolygon ()
, etc. 5 píxeles de espesor.
Cada función de dibujo también tiene una versión de color con relleno que llena esa figura en particular con un color determinado. Por ejemplo, imagefilledrectangle ()
llenará el rectángulo dibujado con el color dado.
Una función GD muy útil es imagesetbrush ($ image, $ brush)
. los $ cepillo
El parámetro en esta función es solo otro recurso de imagen que se puede usar para dibujar líneas. Por ejemplo, puedes usar un dibujo vectorial transparente de una flor como un pincel para agregar bonitos patrones de flores a tu imagen. El fragmento de código que se proporciona a continuación fue escrito para usar la imagen de una nube como un pincel al dibujar un punto. Esto añade una sola nube en nuestro cielo..
Encontré esta imagen de nube en Pixabay y la reduje a un tamaño apropiado para nuestro proyecto.
El código completo para la imagen de la cabaña se da a continuación. Simplemente hemos agregado dos versiones de cada figura, una para dibujar el contorno y la otra para completar el color..
Este es el resultado final del código PHP GD anterior.
PHP GD viene con cuatro funciones diferentes que le permiten representar múltiples caracteres o solo un carácter en una dirección horizontal o vertical. Estas funciones son imagechar ()
, imagecharup ()
, imágenes ()
, y imagestringup ()
. Todos ellos aceptan los mismos seis parámetros, por lo que solo discutiremos los imagechar ()
funciona aquí.
los $ fuente
parámetro imagechar ($ image, $ font, $ x, $ y, $ string, $ color)
La función es simplemente el tamaño del texto representado. Solo acepta valores enteros de 1 a 5. El $ cadena
parámetro es el texto que desea representar. Si pasa una cadena de caracteres múltiples a las funciones char, solo se representará el primer carácter en la imagen. los imagecharup ()
y imagestringup ()
Las funciones renderizarán el texto verticalmente de abajo hacia arriba..
Cuando se trata de representar texto, las cuatro funciones que discutimos anteriormente son muy limitadas. Encontrará que incluso el valor de tamaño de fuente más grande es demasiado pequeño para el uso normal. Además, el texto solo se puede escribir horizontal y verticalmente..
Por suerte, GD también tiene un imagettftext ($ imagen, $ tamaño, $ ángulo, $ x, $ y, $ color, $ fontfile, $ texto)
Función que puede representar el texto en cualquier fuente que desee. los $ fontfile
el parámetro se usa para especificar la ruta a la fuente TrueType que desea usar para mostrar el texto. los $ x
y $ y
Los parámetros determinan la posición inicial del texto renderizado..
El siguiente ejemplo usa todas estas funciones para crear algunos efectos de texto agradables.
Como puede ver, hemos renderizado el mismo texto con la misma fuente en posiciones ligeramente diferentes para crear algunos efectos como la sombra del texto básico. Lo importante a tener en cuenta es que el texto representado por cualquier función de texto ocultará completamente el texto debajo en caso de que se superponga. Aquí está la imagen final obtenida después de ejecutar el código anterior.
El objetivo de este tutorial era familiarizarte con las diferentes funciones de GD para dibujar formas básicas desde cero en PHP. Con la ayuda de un poco de matemáticas, podrás usar estas funciones para crear formas más complicadas como polígonos regulares, rectángulos redondeados, etc..
PHP GD también tiene un par de funciones muy útiles para representar texto en una imagen. El uso de una fuente agradable asegurará que el texto representado no se vea extraño cuando se coloca en imágenes normales cargadas desde diferentes rutas de archivos.
¿Creaste más efectos de texto de lujo en PHP? Por favor compártalos con nosotros en los comentarios..