Pergunta

Eu estou tentando anotar algum texto em uma imagem de base com um dropshadow.Eu não gosto dos resultados que eu conseguir usar a opção de sombra, então eu estou colocando para baixo o texto, tornando-a, em seguida, colocar novamente o texto em branco, alguns pixels deslocamento da sombra.Aqui é o comando que eu estou 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

O meu problema é que o blur opção está a diluir-se não somente a primeira camada de texto, mas subjacente da base de dados de imagem.Eu só quero a primeira camada de texto para borrar, não o da base de dados de imagem.

Eu li um pouco sobre a utilização de pilhas e tentou isolar a primeira camada de texto e o borrão usando o comando \( \) em torno de que a parte, tal como no exemplo seguinte:

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

Os resultados são os mesmos, tanto o texto de sombra e a base da base de dados de imagem está recebendo blured.Eu tenho medo que eu não estou tendo muita sorte compreensão pilhas ou o que outros comandos que eu deveria estar usando para obter o efeito que eu estou atrás.

Foi útil?

Solução

Como tantas vezes acontece, eu continuava a bater longe nesta desde a questão de lançamento e já consegui resolver no meu próprio.

A mudança importante é que eu comecei com um espaço em branco, transparente tela, em vez de começar com a imagem de base.Depois que eu começar o texto direito, eu inserir a imagem de base para a pilha, trocar a ordem de duas imagens na pilha e, em seguida, de compô-las com um compor tipo de "tela", que estabelece um por cima do outro.

Uma outra nota de importação:o canal RGBA é necessário para que a indefinição funciona em conjunto com a transparência da camada de texto, devido a uma peculiaridade na forma como o IM obras.Por isso é necessário é explicado nesta página.

Também, em sistemas Windows (.arquivo bat em vez de um script de shell), as aspas simples precisam estar entre aspas duplas e as barras invertidas "\" precisa ser acentos circunflexos "^", ou tudo desaba.

O script abaixo é o final, resultado de trabalho (*nix versão):

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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top