Pregunta

Estoy tratando de anotar algo de texto en una base de la imagen con una sombra.No me gusta los resultados que obtienen utilizando la sombra de la opción, así que me voy a poner abajo el texto, borrosa ella, y luego poner de nuevo el texto en blanco, un par de píxeles de desplazamiento de la sombra.Aquí el comando es el que estoy usando:

convert base_image.jpg \
        -font TT0590M_.ttf \
        -fill gray30 \
        -annotate +0+0 '' -gravity North \
        -annotate +72+32 'ABCDEFGHIJKLM' \
        -blur 0x4 \
        -fill white \
        -annotate +72+27 'ABCDEFGHIJKLM' \
        combined.png

Mi problema es que la opción de desenfoque es el desenfoque no sólo la primera capa de texto, pero la base subyacente a la imagen.Yo sólo quiero que la primera capa de texto borroso, no la base de la imagen.

He leído un poco sobre el uso de pilas y trató de aislar la primera capa de texto y el desenfoque de comando usando \( \) alrededor de esa parte, como en el siguiente:

convert base_image.jpg \
        -font TT0590M_.ttf \
        -fill gray30 \
        -annotate +0+0 '' -gravity North \
        \( -annotate +72+32 'ABCDEFGHIJKLM' \
        -blur 0x4 \) \
        -fill white \
        -annotate +72+27 'ABCDEFGHIJKLM' \
        combined.png

Los resultados son los mismos, tanto en el texto de la sombra y la base subyacente de la imagen están recibiendo desenfocada.Me temo que no estoy teniendo mucha suerte a la comprensión de las pilas o lo que otros comandos que debe utilizar para obtener el efecto que busco.

¿Fue útil?

Solución

Como sucede a menudo, he seguido a golpear lejos en esto, ya que la publicación de la pregunta y me las he arreglado para resolver por mi cuenta.

El cambio importante es que empecé con un lienzo en blanco, transparente en lugar de comenzar con la imagen base. Después de obtener el derecho de texto, inserto la imagen de base en la pila, intercambiar el orden de las dos imágenes en la pila, y luego los compuesto con un tipo de composición de "pantalla", que establece el uno overtop de la otra.

Otra nota de importación: Se requiere la RGBA -channel para que las obras de desenfoque en conjunto con la transparencia de la capa de texto, debido a una peculiaridad en la forma en que funciona IM. ¿Por qué esto es necesario se explica en esta página .

Además, en los sistemas Windows (.bat archivo en lugar de script de shell), las comillas simples deben estar entre comillas dobles y las barras invertidas "\" tiene que ser signos de intercalación "^", o todo se viene abajo.

El siguiente script es el, resultado de trabajo (* nix versión) final:

convert  \
    -size 500x500 xc:transparent \
    -font TT0590M_.ttf \
    -annotate +0+0 '' -gravity North \
    -fill gray30 \
    -annotate +75+35 'ABCDEFGHIJKLMNOPQR\nABCDEFGHIJKLMNOPQR' \
    -channel RGBA \
    -blur 0x4 \
    -fill white \
    -annotate +72+30 'ABCDEFGHIJKLMNOPQR\nABCDEFGHIJKLMNOPQR' \
    -insert 0 base_image.jpg \
    -swap 0,1 \
    -composite -compose screen \
    combined.png
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top