Ejemplos de ImageMagick -- Efectos de fuente compuestos
- Prefacio e índice de los ejemplos de ImageMagick
-
Fuentes compuestas Dibujar texto como imágenes en distintos estilos
Relleno con mosaico, Relleno con degradado, Boca abajo, Sombra dura, Sombra cizallada, Inclinada, Sello, Extruida, Contorno, Contorno multicolor, Trazo, Trazo grueso, Trazo fino, Doble contorno, Psicodélica, Globo, Unida, Solapada, Tembleque, Difusa, Sombra difusa, Sombra suave, Contorno suave, Contorno suave más denso, Sombra desenfocada por distancia, Impresión sucia, Bisel, Cónica, Bisel interior, Arqueada, Arco, Círculo, Vibrato, Cometa, Humeante. Uso de una imagen de máscara con fuentes Para eliminar partes de una imagen antes de superponerla Procesamiento avanzado de fuentes Ampliar las fuentes para producir resultados más complejos
Fuentes más complejas, Letrero de neón, Metálica Dibujar texto es solo el comienzo de lo que es posible con ImageMagick. Aquí veremos cómo modificar la capacidad básica de IM para dibujar texto y crear fuentes llamativas y efectos especiales, que luego podrás usar en tus páginas web y documentos.
Efectos de fuente compuestos
El simple texto como imagen es aburrido, pero con muy poco esfuerzo puedes superponer y colorear texto para producir efectos muy extraños y maravillosos. Para ello necesitamos dibujar el texto varias veces, superponer distintos mosaicos y colores, y aplicar algunos de los muchos operadores de imagen disponibles para generar efectos especiales más interesantes a partir del texto original y aburrido. Ten en cuenta que muchos de estos efectos pueden aplicarse a otras imágenes además de una fuente básica como la que estamos usando. En particular, puedes usar los efectos sobre imágenes de clip-art. Fuente con mosaico : No estás limitado a dibujar fuentes en un color fijo. Puedes usar un patrón de mosaico sobre la fuente.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-tile pattern:checkerboard -annotate +28+68 'Anthony' \
font_tile.jpg
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-tile gradient: -annotate +28+68 'Anthony' \
font_gradient.jpg
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill Navy -annotate 180x180+300+35 'Anthony' \
font_upsidedown.jpg
Sombra dura : Dibujando la fuente dos veces con un desplazamiento, puedes crear un sencillo efecto de sombra «dura».
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill black -draw "text 28,68 'Anthony'" \
-fill white -draw "text 25,65 'Anthony'" \
font_shadow.jpg
Sombra cizallada : Como el operador de dibujo de fuentes «[-annotate](https://imagemagick.org/command-line-options/#annotate)» puede rotar la dimensión vertical por separado de la horizontal, puedes especificar rotaciones extrañas de «sesgo» (slewing) o «cizalla» (shearing) de la fuente. Esto es estupendo para crear sombras curiosas, o para crear tu propia fuente cursiva o inclinada.
magick -size 320x115 xc:lightblue -font Candice -pointsize 72 \
-fill Navy -annotate 0x0+12+55 'Anthony' \
-fill RoyalBlue -annotate 0x130+25+80 'Anthony' \
font_slewed.jpg
Para ver una tabla que resume los efectos de las rotaciones de texto, consulta Opción Annotate de texto. Por supuesto, la fuente Candice no es buena para mostrar este efecto, y puede que haya que añadir otros detalles para que el resultado parezca más tridimensional. Por ejemplo, Desenfocar la sombra con la distancia. Fuente inclinada : También puedes usar «[-draw](https://imagemagick.org/command-line-options/#draw)» para inclinar tu fuente, aunque es un poco más complicado, ya que implica acciones MVG (Magick Vector Graphics) adicionales para deformar la superficie de dibujo. Como la superficie se está deformando, conviene fijar primero la ubicación de la fuente con 'translate' antes de deformarla.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill Navy -draw "translate 28,68 skewX -20 text 0,0 'Anthony'" \
font_slanted.jpg
| Para ver una tabla que resume los efectos de las rotaciones de texto, consulta Opción Annotate de texto. Por supuesto, la fuente Candice no es buena para mostrar este efecto, y puede que haya que añadir otros detalles para que el resultado parezca más tridimensional. Si se te ocurre algo interesante, envíamelo para poder compartirlo con el resto del mundo. | Tanto las operaciones «[-annotate](https://imagemagick.org/command-line-options/#annotate)» como «[-draw](https://imagemagick.org/command-line-options/#draw) skew?» rotan en realidad los ejes X e Y de la superficie de dibujo. Esto es distinto de los efectos de usar «[-shear](https://imagemagick.org/command-line-options/#shear)» sobre una imagen existente, que alarga el eje cizallado de la imagen de modo que la altura (o anchura) de la imagen no cambia por la operación. |
|---|---|
| Fuente estampada : Dibujando la fuente tres veces, en colores más oscuro, más claro y el original, puedes crear una hendidura como la de un sello. |
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill black -annotate +24+64 'Anthony' \
-fill white -annotate +26+66 'Anthony' \
-fill lightblue -annotate +25+65 'Anthony' \
font_stamp.jpg
Fíjate en cómo el último 'draw' de la fuente borra la parte central de la fuente. Esto solo puede hacerse sobre un fondo de color sólido. Consulta Uso de una imagen de máscara para ver cómo podemos usar esto sobre un fondo aleatorio que no sea de color sólido. Si intercambias los dos colores, obtendrás por supuesto una fuente en relieve en lugar de una fuente hundida. Extruida o fuente de bloque 3D: puede generarse repitiendo la fuente varias veces.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill gray -annotate +29+69 'Anthony' \
-annotate +28+68 'Anthony' \
-annotate +27+67 'Anthony' \
-annotate +26+66 'Anthony' \
-annotate +25+65 'Anthony' \
-annotate +24+64 'Anthony' \
-fill navy -annotate +23+63 'Anthony' \
font_extrude.jpg
Ten en cuenta que esto NO es una simple sombra, sino un engrosamiento real de la fuente dibujada. Es muy repetitivo y puede usarse con cualquier imagen «con forma». Para ver otro ejemplo de esto, consulta Añadir grosor a una miniatura.
Fuente con contorno : Podemos crear una fuente con contorno mediante varios dibujos con pequeños desplazamientos de posición.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill black -annotate +24+64 'Anthony' \
-annotate +26+64 'Anthony' \
-annotate +26+66 'Anthony' \
-annotate +24+66 'Anthony' \
-fill white -annotate +25+65 'Anthony' \
font_outlined.jpg
Como esto también es muy repetitivo, no es una buena solución de contorno. Como ImageMagick te permite dibujar el contorno de la fuente estableciendo el ajuste «[-stroke](https://imagemagick.org/command-line-options/#stroke)», existen soluciones mucho mejores (consulta las fuentes con trazo más abajo). De todos modos, varios redibujados como este para generar un contorno pueden ser muy útiles con imágenes de clip-art ya preparadas, como las que puedes encontrar por toda Internet. También es una técnica útil para otras bibliotecas y programas gráficos (como «GD» de «PHP», etc.) donde no se dispone del ajuste «[-stroke](https://imagemagick.org/command-line-options/#stroke)». Otra razón para mostrar este estilo de contorno es que el resultado puede ser mejor al delinear una fuente con puntas muy afiladas. Por ejemplo, aquí dibujamos la fuente 12 veces para resaltar las puntas afiladas de la fuente. El contorno aquí también se dibujó un poco más grueso.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-draw "fill black text 27,67 'Anthony' \
text 25,68 'Anthony' \
text 23,67 'Anthony' \
text 22,65 'Anthony' \
text 23,63 'Anthony' \
text 25,62 'Anthony' \
text 27,63 'Anthony' \
text 28,65 'Anthony' \
fill white text 25,65 'Anthony' " \
font_outlined_12.jpg
También notarás que el color de relleno -fill» del dibujo puede cambiarse dentro del argumento «[-draw](https://imagemagick.org/command-line-options/#draw)». Contorno multicolor : La otra razón por la que esta técnica es útil es que no estás limitado a un solo color de contorno al dibujar la fuente. Redibujando la fuente 12 veces en 5 colores distintos en una secuencia cuidadosamente diseñada, puedes crear una colorida fuente «en relieve», con cierto suavizado de color en los bordes.
magick -size 320x100 xc:lightblue \
-font Candice -pointsize 72 -gravity center \
-draw "fill navy text 2,2 'Anthony' \
fill navy text 0,3 'Anthony' \
fill navy text 3,0 'Anthony' \
fill dodgerblue text 0,2 'Anthony' \
fill dodgerblue text 2,0 'Anthony' \
fill dodgerblue text -2,2 'Anthony' \
fill dodgerblue text 2,-2 'Anthony' \
fill lavender text -2,-2 'Anthony' \
fill lavender text 0,-3 'Anthony' \
fill lavender text -3,0 'Anthony' \
fill skyblue text 0,-2 'Anthony' \
fill skyblue text -2,0 'Anthony' \
fill blue text 0,0 'Anthony' " \
font_colourful.jpg
Existen métodos mejores para crear una fuente en relieve como esta, pero este funciona, es sencillo y solo usa unos pocos colores, en lugar de una gama completa de colores. Fuente con contorno (trazo) : El ajuste «[-stroke](https://imagemagick.org/command-line-options/#stroke)» te permite dibujar directamente un contorno de la fuente. Normalmente el color del trazo se fija en "none", por lo que no se usa. El grosor del trazo se varía con «[-strokewidth](https://imagemagick.org/command-line-options/#strokewidth)», cuyo valor por defecto es un adecuado 1.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill white -stroke black -annotate +25+65 'Anthony' \
font_stroke.jpg
Y aquí tienes un ejemplo con un grosor de trazo mayor, de 3.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill white -stroke black -strokewidth 3 \
-annotate +25+65 'Anthony' font_stroke_3.jpg
Fíjate en cómo el color del trazo come no solo el exterior de la fuente, sino también el interior. Para más detalles, consulta los resultados de mis Opciones de trazo y grosor de trazo.
Trazo grueso : Redibujando de nuevo la fuente una segunda vez, pero sin el trazo activado, las partes internas de las líneas se eliminan, creando una fuente con un contorno grueso más agradable.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 -fill white \
-stroke black -strokewidth 5 -annotate +25+65 'Anthony' \
-stroke none -annotate +25+65 'Anthony' \
font_stroke_thick.jpg
El uso del ajuste «-stroke» se lleva aún más lejos en Opciones de trazo y grosor de trazo, donde este aspecto de los operadores de dibujo se explora con mayor profundidad. Trazo fino : Desactivando el color de relleno, puedes dejar solo el contorno de la fuente.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill none -stroke black -annotate +25+65 'Anthony' \
font_stroke_thin.jpg
Doble contorno : Redibujando con varios grosores de trazo, ¡puedes generar un doble contorno! El primer dibujo puede usar cualquier color de relleno para rellenar el interior de la fuente, o dejarse en none como hicimos aquí para no tocar el fondo. Sin embargo, el último dibujo de la fuente debe hacerse con un ajuste de relleno "none", o no funcionará.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill none -stroke black -strokewidth 3 -annotate +25+65 'Anthony' \
-fill none -stroke white -strokewidth 1 -annotate +25+65 'Anthony' \
font_stroke_double.jpg
A diferencia de la «fuente estampada» anterior, lo de arriba no requirió borrar la parte central de la fuente. Por tanto, esto funciona sobre cualquier fondo sin complicaciones. Fuente psicodélica : De forma similar, reduciendo poco a poco el grosor del trazo mientras se intercambian los colores, puede generarse fácilmente un efecto de contorno psicodélico.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 -fill white \
-stroke black -strokewidth 25 -annotate +25+65 'Anthony' \
-stroke white -strokewidth 20 -annotate +25+65 'Anthony' \
-stroke black -strokewidth 15 -annotate +25+65 'Anthony' \
-stroke white -strokewidth 10 -annotate +25+65 'Anthony' \
-stroke black -strokewidth 5 -annotate +25+65 'Anthony' \
-stroke none -annotate +25+65 'Anthony' \
font_psychedelic.jpg
Puedes hacerlo aún más psicodélico usando colores estridentes, distintos grosores de trazo, o incluso moviendo un poco la posición de la fuente. Experimenta y mira qué se te ocurre. Efecto globo : Aquí hice exactamente lo mismo que en la «fuente con trazo grueso» de arriba, pero por puro accidente usé un color de trazo blanco al redibujar la fuente. Esto produjo una curiosa ampliación de la fuente, con un contorno grueso. La fuente de aspecto «mullido» parece como si la hubieran inflado como un globo. Esto demuestra que vale la pena experimentar para ver qué puedes encontrar.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill black -stroke black -strokewidth 5 -annotate +25+65 'Anthony' \
-fill white -stroke white -strokewidth 1 -annotate +25+65 'Anthony' \
font_balloon.jpg
Caracteres unidos : Usando un pequeño ajuste negativo de interletraje (kerning) (añadido en IM v6.4.7-10) y dibujando la fuente dos veces (como en el ejemplo anterior), puedes hacer que todos los caracteres de una fuente «gruesa» se unan, produciendo una variación interesante.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-kerning -6 -strokewidth 4 -fill white \
-stroke black -annotate +28+68 Anthony \
-stroke none -annotate +28+68 Anthony \
font_joined.jpg
Caracteres solapados : Una variación de esto, sin embargo, consiste en dibujar cada carácter por separado de modo que cada uno se superponga sobre los anteriores.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-stroke black -strokewidth 4 -fill white \
-stroke black -annotate +28+68 A -stroke none -annotate +28+68 A \
-stroke black -annotate +90+68 n -stroke none -annotate +90+68 n \
-stroke black -annotate +120+68 t -stroke none -annotate +120+68 t \
-stroke black -annotate +138+68 h -stroke none -annotate +138+68 h \
-stroke black -annotate +168+68 o -stroke none -annotate +168+68 o \
-stroke black -annotate +193+68 n -stroke none -annotate +193+68 n \
-stroke black -annotate +223+68 y -stroke none -annotate +223+68 y \
font_overlapped.jpg
Esto, sin embargo, requiere que calcules (manualmente o de forma automática con un script) la posición adecuada de cada carácter. La anchura natural de cada carácter puede determinarse generando etiquetas de cada carácter sin ningún ajuste «[-strokewidth](https://imagemagick.org/command-line-options/#strokewitdh)». Consulta Determinar las métricas de la fuente para ver ejemplos. A diferencia de cuando se usa el ajuste «[-kerning](https://imagemagick.org/command-line-options/#kerning)» (ejemplo anterior), la posición de cada carácter arriba se ajustó de forma artística por cantidades distintas, en lugar de una simple cantidad fija. Por ejemplo, solo un pequeño solapamiento entre la 't' y la 'h', pero mucho más solapamiento entre los caracteres 'n' e 'y'. Caracteres temblequeantes : si llegas a dibujar caracteres individuales (solapados o no), entonces puedes colocarlos en un patrón «tembleque» o aleatorio, en particular con distintos desplazamientos arriba-abajo. Incluso puedes llevar esto al extremo para generar un efecto especial como...
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-stroke black -strokewidth 4 -fill white \
-stroke black -annotate +26+80 A -stroke none -annotate +26+80 A \
-stroke black -annotate +95+63 n -stroke none -annotate +95+63 n \
-stroke black -annotate +133+54 t -stroke none -annotate +133+54 t \
-stroke black -annotate +156+67 h -stroke none -annotate +156+67 h \
-stroke black -annotate +193+59 o -stroke none -annotate +193+59 o \
-stroke black -annotate +225+59 n -stroke none -annotate +225+59 n \
-stroke black -annotate +266+54 y -stroke none -annotate +266+54 y \
font_jittered.jpg
Fuente difusa : Una difusión directa del color de la fuente usando el operador «[-blur](https://imagemagick.org/command-line-options/#blur)». Este operador te permite tomar una imagen y extenderla en todas las direcciones. Esto te permite generar sombras de aspecto más suave, y efectos parecidos a la pintura en aerosol. Los siguientes ejemplos muestran los efectos que puedes lograr con esto.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill navy -annotate +25+65 'Anthony' \
-blur 0x3 font_fuzzy.jpg
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-annotate +30+70 'Anthony' -blur 0x4 \
-fill white -stroke black -annotate +25+65 'Anthony' \
font_shadow_fuzzy.jpg
Sombra suave : El operador «[-shadow](https://imagemagick.org/command-line-options/#shadow)» no solo te permite generar y posicionar sombras suaves y difusas para imágenes que contienen transparencia, sino que también te permite usar cualquier color y fijar un nivel general de transparencia.
magick -size 300x100 xc:none -font Candice -pointsize 72 \
-fill white -stroke black -annotate +25+65 'Anthony' \
\( +clone -background navy -shadow 70x4+5+5 \) +swap \
-background lightblue -flatten -trim +repage font_shadow_soft.jpg
Para más información sobre el operador «[-shadow](https://imagemagick.org/command-line-options/#shadow)», consulta Generar sombras. A partir de IM v6.3.1, el comando «[montage](montage.html)» también puede generar sombras suaves «con forma» de imágenes que contienen transparencia. Esto significa que puedes proyectar muy fácilmente una sombra de una imagen «[label:](text.html#label)».
montage -background none -fill white -font Candice \
-pointsize 72 label:'Anthony' +set label \
-shadow -background lightblue -geometry +5+5 \
font_montage_shadow.jpg
Sin embargo, no tienes ningún control sobre el desplazamiento, el color o la cantidad de desenfoque de la sombra de montage (por ahora). Contorno suave : usa la fuente difusa como borde del contorno. Esto es como usar la fuente original como máscara para una pistola de pintura.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-annotate +25+65 'Anthony' -blur 0x5 \
-fill white -annotate +25+65 'Anthony' font_outline_soft.jpg
Ten en cuenta que el borde es muy claro, ya que no solo se extiende el color negro, sino que el color de fondo se extiende hacia dentro, dejando el borde solo al 50% de oscuridad. Una forma de corregir esto es usar un Contorno de sombra, con un Ajuste de nivel para corregir esa claridad, aunque eso emplea técnicas de procesamiento de imagen muy avanzadas. Contorno suave más denso : Otra forma de corregir la claridad del contorno suave es desenfocar una fuente que tenga un contorno de trazo ancho. Esto aleja efectivamente el punto de desenfoque al 50% del borde de la fuente. También permite usar un valor de desenfoque aún mayor, dejando que el color negro se extienda más lejos.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-stroke black -strokewidth 8 -annotate +25+65 'Anthony' -blur 0x8 \
-fill white -stroke none -annotate +25+65 'Anthony' \
font_denser_soft_outline.jpg
Como ejemplo práctico de este método, consulta los ejemplos generados en Añadir etiquetas de imagen a miniaturas y el último ejemplo en Anotar sobre imágenes.
Sombra desenfocada por distancia : Con la introducción del Mapeado de desenfoque variable, ahora puedes desenfocar una sombra de modo que se vuelva más borrosa con la distancia aparente de esa sombra al objeto que la proyecta. Por ejemplo, aquí tomé la Fuente con sombra cizallada y desenfoqué la sombra para que quede sin desenfocar arriba y más borrosa abajo.
magick -size 320x40 xc:lightblue -font Candice -pointsize 72 \
-fill RoyalBlue -annotate 0x125+20+0 'Anthony' \
\( -size 320x45 gradient:black -append \) \
-compose Blur -set option:compose:args 20x5+45 -composite \
\( -size 320x60 xc:lightblue \
-fill Navy -annotate 0x0+20+59 'Anthony' \) \
+swap -append font_var_blur.jpg
Ten en cuenta que no usé simplemente un desenfoque circular, ya que la luz que cae sobre una superficie inclinada formará elipses, no círculos. Por tanto, el desenfoque también necesita formar elipses. Básicamente, usé una variante de Desenfoque elíptico para lograr este efecto. Un último apunte: usar los argumentos de ángulo de annotate para crear el texto cizallado (consulta Uso de argumentos de Annotate) probablemente no sea la mejor manera de generar la sombra 3D inicial como esta. Básicamente, no puede hacer la sombra más corta o más larga, como una sombra real, ya que solo realiza una cizalla rotacional. Un método mejor es usar una Distorsión afín de tres puntos, que te da mejor control sobre la colocación de la sombra (consulta Sombras 3D, usando cizallas afines). Por supuesto, seguirás necesitando la técnica de Desenfoque variable para que quede bien.
Fuente de impresión sucia : Los píxeles se extienden ligeramente, luego se desenfocan, y se umbralizan varias veces para suavizar el contorno final. El resultado es una fuente que parece impresa en papel de periódico basto.
magick -size 320x100 xc: \
-font Candice -pointsize 72 -annotate +25+65 'Anthony' \
-spread 1 -blur 0x1 -threshold 50% -blur 0x1 font_dirty_print.jpg
Esta fuente proviene de la discusión Cómo ensuciar una fuente, que incluye otros métodos más complejos.
Fuente biselada : El Operador Shade puede usarse para generar una fuente 3D muy atractiva, con un borde biselado y suavemente curvado.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +25+65 'Anthony' \
-shade 140x45 font_beveled.jpg
Esto es mucho más atractivo que la fuente estampada, pero shade solo genera imágenes en escala de grises. Por otra parte, hay muchos métodos que pueden reemplazar la escala de grises del resultado anterior por los colores que necesites. El mayor problema de usar shade para «biselar» una fuente es que el grosor del bisel no es fácilmente ajustable. Básicamente está fijado a un grosor de aproximadamente 5 píxeles, sin importar el tamaño de la fuente usada.
Fuente cónica : Usando el nuevo Método de distancia de morfología (a partir de IM v6.6.2) combinado con el Operador Shade, puedes hacer que toda la fuente parezca una cresta montañosa tridimensional. Esto requiere cierto manejo especial de los píxeles de antialiasing, según Distancia con una forma con antialiasing, pero el resultado es una fuente cónica con forma de montaña.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +25+65 'Anthony' \
-gamma 2 +level 0,1000 -white-threshold 999 \
-morphology Distance Euclidean:4,1000 -auto-level \
-shade 135x30 -auto-level +level 10,90% font_conic.jpg
Añadiendo un poco de «[-adaptive-blur](https://imagemagick.org/command-line-options/#adaptive-blur)» puedes suavizar el resultado para generar un aspecto mejor y extrañamente brillante en la fuente resultante.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +25+65 'Anthony' \
-gamma 2 +level 0,1000 -white-threshold 999 \
-morphology Distance Euclidean:4,1000 -auto-level \
-shade 135x30 -auto-level +level 10,90% \
-adaptive-blur 0x2 font_conic_smoothed.jpg
Mover el «[-adaptive-blur](https://imagemagick.org/command-line-options/#adaptive-blur)» antes del uso de Shade hará que los bordes se desenfoquen, pero no la cresta central (esqueleto) de las formas de la fuente. El resultado parece como si las crestas afiladas empujaran hacia arriba contra una lámina de goma.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +25+65 'Anthony' \
-gamma 2 +level 0,1000 -white-threshold 999 \
-morphology Distance Euclidean:4,1000 -auto-level \
-adaptive-blur 0x2 \
-shade 135x30 -auto-level +level 10,90% font_conic_ridge.jpg
Usar un Núcleo de distancia distinto, como Chebyshev, funciona mejor con fuentes de aspecto más regular, como la familia de fuentes Arial.
magick -size 320x100 xc:black -font ArialBk -pointsize 70 \
-fill white -annotate +5+70 'Anthony' \
-gamma 2 +level 0,1000 -white-threshold 999 \
-morphology Distance Chebyshev:1,1000 -auto-level \
-shade 135x30 -auto-level +level 10,90% font_chebyshev.jpg
Fuente con bisel interior : Limitar la distancia recortando la función de distancia biselará solo los bordes de la forma.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +25+65 'Anthony' \
-gamma 2 +level 0,1000 -white-threshold 999 \
-morphology Distance Euclidean:4,1000 -level 0,5000 \
-shade 135x30 -auto-level +level 10,90% font_inner_bevel.jpg
Fuente arqueada : El operador «[-wave](https://imagemagick.org/command-line-options/#wave)» (consulta Desplazamiento por onda sinusoidal para más detalles) desplazará los píxeles de la imagen verticalmente para formar un arco. Las verticales permanecerán verticales, y los caracteres se cizallarán para producir la curva.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill navy -annotate +25+65 'Anthony' \
-background lightblue -wave -50x640 -crop x110+0+10 \
font_wavy.jpg
Ten en cuenta que, para usar «[-wave](https://imagemagick.org/command-line-options/#wave)» para crear un arco, necesitas usar una «longitud de onda» que sea el doble de la anchura de la imagen (2 × 320, o 640 píxeles). Además, como «[-wave](https://imagemagick.org/command-line-options/#wave)» añade espacio extra a la imagen por la cantidad que se arquea, ese espacio debe recortarse posteriormente. Es una forma simple, rápida pero eficaz de crear un arco de texto. Fuente en arco : El Operador de distorsión general también ofrece otros métodos de deformación de texto/imagen. El método '[Arc](distorts.html#arc)', por ejemplo, doblará una fuente en un verdadero arco circular, en lugar del «arco» desplazado verticalmente del ejemplo anterior.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill navy -annotate +25+65 'Anthony' \
-distort Arc 120 -trim +repage \
-bordercolor lightblue -border 10 font_arc.jpg
Fuente en círculo : Incluso puedes llevarlo al extremo y envolver el texto en un círculo completo, o casi completo.
magick -font Candice -pointsize 32 -background lightblue \
-fill navy label:"Anthony's IM Examples" \
-virtual-pixel background -distort Arc 340 \
font_circle.jpg
Consulta Distorsión en arco para más opciones y posibilidades. Fuente en espiral : Añadiendo un poco de rotación para inclinar la fuente en ángulo antes de envolverla, el círculo puede convertirse en una espiral.
magick -font Candice -pointsize 32 -background lightblue \
-fill navy label:"Anthony's IM Examples" \
-rotate 12 -virtual-pixel background -distort Arc 360 \
-trim -bordercolor lightblue -border 5x5 font_spiral.jpg
Sin embargo, la altura del texto (en sentido radial) permanece constante; no se estira ni se comprime a medida que se acerca al centro, lo que produce una fuerte distorsión de aspecto en los caracteres. Podrías resolver esto usando una distorsión en perspectiva como parte de la rotación del texto, para ajustar la altura de la fuente antes de aplicar la distorsión Arc. El problema con esta técnica es que solo puedes hacer una vuelta de la espiral, aunque con varias líneas y algo de cuidado para alinearlas, podrías generar varias espirales. Si lo intentas, ¿me enviarías un ejemplo?
Fuente vibrato : El operador «[-wave](https://imagemagick.org/command-line-options/#wave)» que usamos en la Fuente arqueada de arriba también puede usarse a una frecuencia más alta y una amplitud menor para crear una fuente vibrante. ¡Además, añadiendo algunas operaciones de rotación, incluso puedes hacer que la vibración esté en el ángulo que quieras!
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill navy -annotate +25+65 'Anthony' \
-background lightblue -rotate 85 -wave 2x5 -rotate -85 \
-gravity center -crop 320x100+0+0 +repage font_vibrato.jpg
Para más información sobre el uso de distorsiones como esta, consulta la página de ejemplos Deformación de imágenes, y en especial el Operador de distorsión Wave. Fuente cometa : Uno de los operadores de desenfoque especializados, «[-motion-blur](https://imagemagick.org/command-line-options/#motion-blur)», te permite crear una cola tipo cometa en los objetos de una imagen.
magick -size 340x120 xc:lightblue -font Candice -pointsize 72 \
-fill navy -annotate +45+95 'Anthony' -motion-blur 0x25+65 \
-fill black -annotate +45+95 'Anthony' -motion-blur 0x1+65 \
font_comet.jpg
Puedes animar esta fuente compuesta usando distintos colores para crear un auténtico evento de fuego. También puedes hacer mucho más con Desenfoques especializados, aunque todo este aspecto de IM sigue siendo experimental y la sintaxis de estos operadores puede cambiar en un futuro próximo. Fuente humeante : ¡combinando esto con wave puedes hacer que la fuente cometa parezca humo, un olor, o incluso llamas que se elevan de la fuente!
magick -size 320x120 xc:lightblue -font Candice -pointsize 72 \
-fill black -annotate +25+95 'Anthony' -motion-blur 0x25+90 \
-background lightblue -rotate 60 -wave 3x35 -rotate -60 \
-gravity center -crop 320x120+0+0 +repage +gravity \
-fill navy -annotate +25+95 'Anthony' font_smoking.jpg
¿Tienes alguna transformación interesante que añadir a la lista anterior?
Uso de una imagen de máscara con fuentes
Dibujar una «fuente estampada» sobre una imagen de fondo es en realidad mucho más difícil que la mayoría de los métodos para generar fuentes llamativas que detallé arriba. La razón es que parte de la fuente original se borra, lo que plantea un problema al dibujarla sobre un fondo que no es de un color sólido simple. Aquí está la imagen de fuente compuesta que generamos arriba.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill black -annotate +24+64 'Anthony' \
-fill white -annotate +26+66 'Anthony' \
-fill lightblue -annotate +25+65 'Anthony' \
font_stamp.jpg
Si intentamos dibujar la fuente sobre un fondo transparente (imagen en formato PNG), usando exactamente el mismo método, simplemente fallamos...
magick -size 320x100 xc:transparent -font Candice -pointsize 72 \
-fill black -annotate +24+64 'Anthony' \
-fill white -annotate +26+66 'Anthony' \
-fill transparent -annotate +25+65 'Anthony' \
trans_stamp.png
Lo que ocurrió fue que intentamos borrar la parte central de la fuente con el color de «transparencia». Pero, como puedes ver, dibujar con transparencia ¡simplemente no dibuja nada! Así que el resultado anterior fue el mismo que si el último operador de «borrado» -annotate» no hubiera funcionado en absoluto. Hay alrededor de media docena de soluciones a este problema. Aquí presentaré tres de esos métodos, mientras que de otros se habla en varios otros lugares de las páginas de ejemplos de IM. Probablemente el más sencillo sea no corregir la fuente anterior en absoluto, sino usar una «máscara» al dibujarla sobre la imagen de fondo para indicar al comando «magick composite» que ignore la sección central. Una imagen de máscara de «magick composite» es una imagen en escala de grises: negro puro para las partes que serán transparentes, y blanco puro para cualquier parte que quieras completamente visible (opaca). Cualquier tono de gris se dibujará como semitransparente, fundiéndose con los colores de fondo de debajo. Pues bien, nuestra imagen anterior está casi bien, así que enmascaremos todas las partes que no queremos. Empezamos con un fondo negro (totalmente transparente), luego dibujamos en blanco todo lo que queremos, y en negro todo lo que no queremos.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +24+64 'Anthony' \
-fill white -annotate +26+66 'Anthony' \
-fill black -annotate +25+65 'Anthony' \
mask_mask.jpg
Ten en cuenta que la máscara que creamos no es solo blanca y negra, sino que tiene varios tonos de gris a lo largo de los bordes de las áreas debido al antialiasing (consulta Ejemplos de antialiasing para más detalles). Estos píxeles grises hacen que los bordes de la imagen final sean más suaves, y son muy importantes, ya que representan píxeles semitransparentes (solo medio visibles). Ahora que tenemos una máscara, podemos enmascarar las secciones no deseadas de la imagen. Podemos hacerlo mientras dibujamos (superponemos) la imagen sobre un fondo de plasma. Fíjate en el orden de los tres argumentos de imagen (fuente, fondo y luego máscara).
magick -size 320x180 plasma: -shave 0x40 plasma_background.jpg
magick composite trans_stamp.png plasma_background.jpg mask_mask.jpg \
mask_result.jpg
Una forma de tres argumentos «magick -composite» de esto es...
magick plasma_background.jpg trans_stamp.png mask_mask.jpg \
-composite mask_result2.jpg
Buen resultado, pero ahora necesitamos dos imágenes para dibujar la fuente compuesta. Sería mejor si solo necesitáramos una imagen, con la máscara incorporada directamente en la propia imagen. Básicamente, queremos reemplazar por completo el canal alfa de nuestra imagen de fuente por una copia de la máscara de imagen de fuente que creamos. Es decir, fusionamos la imagen de fuente (que aporta los colores de los píxeles) directamente con su máscara (que aporta el canal alfa de la imagen). El ajuste de composición alfa «[CopyOpacity](compose.html#copyopacity)» realiza este reemplazo. Fíjate en el orden de los argumentos en el comando. En este caso, la propia fuente es la imagen de fondo, mientras que la máscara es la imagen que se superpone sobre la imagen de fondo.
magick composite -compose CopyOpacity mask_mask.jpg trans_stamp.png \
trans_stamp3.png
magick composite trans_stamp3.png plasma_background.jpg mask_result3.jpg
| El resultado de todo esto es que la parte central de la fuente ha quedado, por fin, debidamente borrada al hacerla totalmente transparente. La imagen única resultante puede así superponerse fácilmente sobre cualquier fondo, sin necesidad de ninguna imagen de máscara adicional. | Reducir un estampado de fuente transparente grande como el anterior crea una marca de agua muy buena. Al reducirlo, el contorno se vuelve menos opaco y menos pronunciado, justo como debería ser una marca de agua. Los dos colores también garantizan que la marca sea visible de forma fiable tanto en imágenes muy claras como muy oscuras. |
|---|---|
| Para más información sobre el uso de máscaras de imagen, consulta Edición de máscaras de imagen. |
Procesamiento avanzado de fuentes
Combinando las técnicas anteriores, con colores apropiados y otras fuentes llamativas disponibles, puedes crear efectos fantásticos, que a menudo se ven completamente distintos a las técnicas originales mostradas arriba.
Fuentes más complejas: un ejemplo
Por ejemplo, aquí generamos un fragmento de texto muy complejo y colorido.
magick -font Times-Bold -pointsize 64 \
-background none label:"Colorful Arc" \
\( +clone -sparse-color Barycentric '0,%h blue %w,0 red' \
\) -compose In -composite \
-virtual-pixel transparent -distort arc 120 \
\( +clone -background black -shadow 100x2+4+4 \
\) +swap -background white -compose over -layers merge +repage \
colorful_arc.jpg
El complejo comando anterior está dispuesto de modo que realice cada paso principal de procesamiento de imagen en líneas separadas. Primero se crea la imagen de texto. Luego se genera un Degradado de dos puntos como superposición de color. También podrían haberse usado otros métodos de coloreado como Imágenes aleatorias desenfocadas, Plasma fractal o Lienzos con mosaico. La superposición de color se usa luego para colorear el texto mediante el operador de composición alfa In. El texto coloreado se distorsiona después con una Distorsión en arco, y por último se genera una Sombra que se fusiona como capa bajo el texto. Ese último método también Elimina la transparencia, reemplazándola por blanco, antes de guardar en JPEG. Para más información sobre un procesamiento de imagen tan complejo, consulta Procesamiento de imagen complejo y depuración.
Letrero de neón
Aquí tienes otro ejemplo sencillo. Usando una fuente con Contorno suave sobre un fondo oscuro, pero empleando todos los mismos colores y una fuente apropiada, puedes generar un sencillo efecto de «letrero de neón»...
magick -fill dodgerblue -background black -font Anaconda -pointsize 72 \
label:' I M Examples ' -bordercolor black -border 30x30 \
\( +clone -blur 0x25 -level 0%,50% \) \
-compose screen -composite neon_sign.gif
Y con solo un poco más de trabajo, ¡también puedes animarlo! Pero eso lo dejaré como ejercicio para el lector. Consulta Ejemplos avanzados de IM para efectos especiales como los Efectos «gel» y los Efectos «aqua». Para ver algunos ejemplos de otros efectos de fuente que quizá quieras intentar implementar, consulta XaraXone, Using Contour Tool. IM puede crear fácilmente efectos de contorno como los que se muestran allí.
Efecto metálico
Este efecto es esencialmente un redondeo y un efecto de reemplazo mediante tabla de búsqueda de color. Consulta la discusión Efecto metálico. Ejemplo funcional de snibgo
# Genera una máscara con la forma de la fuente de entrada desenfocada
# el primer blur-level es un efecto de redondeo o «encharcamiento»
# el segundo blur es el importante para el efecto metálico.
magick -background none -pointsize 160 -font Candice label:" Anthony " \
-blur 0x5 -channel A -level 40%,60% +channel \
-blur 0x3 metallic_input.png
# Tabla de búsqueda de color metálica
magick \
-size 1x1000 gradient: -gamma 0.9 \
-function Sinusoid 2.25,0,0.5,0.5 \
\( gradient:'rgb(100%,100%,80%)-black' -gamma 1 \) \
+swap \
-compose Overlay -composite \
-rotate 90 \
metallic_clut.png
# Da a la fuente desenfocada un aspecto metálico
# * primero crea un degradado vertical
# * luego lo fusiona con un degradado reflectante de 'shade'
# * antes de aplicar el color al degradado resultante
# * por último añade una sombra.
magick metallic_input.png -set colorspace RGB \
\( -clone 0 -alpha off \
-sparse-color Barycentric "0,0 White 0,%[fx:h-1] Black" \
-alpha on \
\) \
\( -clone 0 -alpha extract -shade 135x45 -auto-gamma -auto-level \
-alpha on -channel A -level 0%x10% +channel \
\) \
-delete 0 -compose Overlay -composite \
metallic_clut.png -clut -set colorspace sRGB \
\
\( +clone -background navy -shadow 80x2+5+5 \
\) +swap -background None -compose Over -layers merge \
\
-trim +repage metallic.png
![[IM Output]](../static/img/fonts/font_tile.jpg)
![[IM Output]](../static/img/fonts/font_gradient.jpg)
![[IM Output]](../static/img/fonts/font_upsidedown.jpg)
![[IM Output]](../static/img/fonts/font_shadow.jpg)
![[IM Output]](../static/img/fonts/font_slewed.jpg)
![[IM Output]](../static/img/fonts/font_slanted.jpg)
![[IM Output]](../static/img/fonts/font_stamp.jpg)
![[IM Output]](../static/img/fonts/font_extrude.jpg)
![[IM Output]](../static/img/fonts/font_outlined.jpg)
![[IM Output]](../static/img/fonts/font_outlined_12.jpg)
![[IM Output]](../static/img/fonts/font_colourful.jpg)
![[IM Output]](../static/img/fonts/font_stroke.jpg)
![[IM Output]](../static/img/fonts/font_stroke_3.jpg)
![[IM Output]](../static/img/fonts/font_stroke_thick.jpg)
![[IM Output]](../static/img/fonts/font_stroke_thin.jpg)
![[IM Output]](../static/img/fonts/font_stroke_double.jpg)
![[IM Output]](../static/img/fonts/font_psychedelic.jpg)
![[IM Output]](../static/img/fonts/font_balloon.jpg)
![[IM Output]](../static/img/fonts/font_joined.jpg)
![[IM Output]](../static/img/fonts/font_overlapped.jpg)
![[IM Output]](../static/img/fonts/font_jittered.jpg)
![[IM Output]](../static/img/fonts/font_fuzzy.jpg)
![[IM Output]](../static/img/fonts/font_shadow_fuzzy.jpg)
![[IM Output]](../static/img/fonts/font_shadow_soft.jpg)
![[IM Output]](../static/img/fonts/font_montage_shadow.jpg)
![[IM Output]](../static/img/fonts/font_outline_soft.jpg)
![[IM Output]](../static/img/fonts/font_denser_soft_outline.jpg)
![[IM Output]](../static/img/fonts/font_var_blur.jpg)
![[IM Output]](../static/img/fonts/font_dirty_print.jpg)
![[IM Output]](../static/img/fonts/font_beveled.jpg)
![[IM Output]](../static/img/fonts/font_conic.jpg)
![[IM Output]](../static/img/fonts/font_conic_smoothed.jpg)
![[IM Output]](../static/img/fonts/font_conic_ridge.jpg)
![[IM Output]](../static/img/fonts/font_chebyshev.jpg)
![[IM Output]](../static/img/fonts/font_inner_bevel.jpg)
![[IM Output]](../static/img/fonts/font_wavy.jpg)
![[IM Output]](../static/img/fonts/font_arc.jpg)
![[IM Output]](../static/img/fonts/font_circle.jpg)
![[IM Output]](../static/img/fonts/font_spiral.jpg)
![[IM Output]](../static/img/fonts/font_vibrato.jpg)
![[IM Output]](../static/img/fonts/font_comet.jpg)
![[IM Output]](../static/img/fonts/font_smoking.jpg)
![[IM Output]](../static/img/fonts/trans_stamp.png)
![[IM Output]](../static/img/fonts/mask_mask.jpg)
![[IM Output]](../static/img/fonts/mask_result.jpg)
![[IM Output]](../static/img/fonts/mask_result2.jpg)
![[IM Output]](../static/img/fonts/trans_stamp3.png)
![[IM Output]](../static/img/fonts/mask_result3.jpg)
![[IM Output]](../static/img/fonts/colorful_arc.jpg)
![[IM Output]](../static/img/fonts/neon_sign.gif)
![[IM Output]](../static/img/fonts/metallic.png)