Exemplos do ImageMagick -- Efeitos Compostos de Fonte
- Exemplos do ImageMagick: Prefácio e Índice
-
Fontes Compostas Desenhar texto como imagens em diversos estilos
Preenchida com Tile, Preenchida com Gradiente, De Cabeça para Baixo, Sombra Rígida, Sombra Cisalhada, Inclinada, Carimbo, Extrudada, Contorno, Contorno Multicolorido, Traço, Traço Grosso, Traço Fino, Contorno Duplo, Psicodélica, Balão, Unida, Sobreposta, Trepidante, Difusa, Sombra Difusa, Sombra Suave, Contorno Suave, Contorno Suave Mais Denso, Sombra Borrada por Distância, Impressão Suja, Chanfro, Cônica, Chanfro Interno, Arco (Arch), Arco (Arc), Círculo, Vibrato, Cometa, Fumaça. Usando uma Imagem de Máscara com Fontes Para remover partes de uma imagem antes da sobreposição Processamento Avançado de Fontes Expandir fontes para produzir resultados mais complexos
Fontes Mais Complexas, Letreiro de Néon, Metálica Desenhar texto é apenas o início do que é possível com o ImageMagick. Aqui examinamos como modificar a capacidade básica de desenho de texto do IM para criar fontes sofisticadas e efeitos especiais, que você pode então usar em suas páginas web e documentos.
Efeitos Compostos de Fonte
Texto simples como imagem é monótono, mas com muito pouco esforço você pode sobrepor e colorir texto de modo a produzir efeitos bastante estranhos e maravilhosos. Para isso é preciso desenhar o texto várias vezes, sobrepor diferentes tiles e cores e aplicar alguns dos muitos operadores de imagem disponíveis, gerando efeitos especiais mais interessantes a partir do texto original e monótono. Note que muitos desses efeitos podem ser aplicados a outras imagens além de uma fonte básica como a que estamos usando. Em particular, você pode usar os efeitos em imagens de clip-art. Fonte com Tile : Você não está limitado a desenhar fontes em uma cor fixa. É possível usar um padrão de tile sobre a fonte.
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 Rígida : Desenhando a fonte duas vezes com um deslocamento, você pode criar um efeito simples de sombra 'rígida'.
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 Cisalhada : Como o operador de desenho de fonte "[-annotate](https://imagemagick.org/command-line-options/#annotate)" pode rotacionar a dimensão vertical separadamente da horizontal, você pode especificar uma rotação de 'inclinação' (slewing) ou 'cisalhamento' (shearing) peculiar da fonte. Isso é ótimo para criar sombras estranhas ou para produzir sua própria fonte itálica ou 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 uma tabela que resume os efeitos das rotações de texto, consulte Opção Annotate de Texto. É claro que a fonte Candice não é uma boa fonte para demonstrar esse efeito, e outros detalhes podem precisar ser adicionados para que o resultado pareça mais tridimensional. Por exemplo, Borrar a sombra com a distância. Fonte Inclinada : Você também pode usar "[-draw](https://imagemagick.org/command-line-options/#draw)" para inclinar sua fonte, embora seja um pouco mais complicado, pois envolve ações MVG (Magick Vector Graphics) adicionais para deformar a superfície de desenho. Como a superfície está sendo deformada, é uma boa ideia definir primeiro a posição da fonte usando 'translate' antes de deformar.
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 uma tabela que resume os efeitos das rotações de texto, consulte Opção Annotate de Texto. É claro que a fonte Candice não é uma boa fonte para demonstrar esse efeito, e outros detalhes podem precisar ser adicionados para que o resultado pareça mais tridimensional. Se você criar algo interessante, envie-o para mim, para que possa ser compartilhado com o resto do mundo. | Tanto as operações "[-annotate](https://imagemagick.org/command-line-options/#annotate)" quanto "[-draw](https://imagemagick.org/command-line-options/#draw) skew?" na verdade rotacionam os eixos X e Y da superfície de desenho. Isso é diferente do efeito de usar "[-shear](https://imagemagick.org/command-line-options/#shear)" em uma imagem existente, que alonga o eixo cisalhado da imagem, de modo que a altura (ou largura) da imagem não muda com a operação. |
|---|---|
| Fonte de Carimbo : Desenhando a fonte três vezes em cores mais escura, mais clara e a cor original, você pode criar uma depressão semelhante a um carimbo. |
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
Observe como o último 'draw' da fonte apaga a porção central da fonte. Isso só pode ser feito sobre um fundo de cor sólida. Consulte Usando uma Imagem de Máscara para ver como fazer isso sobre um fundo aleatório que não seja de cor sólida. Se você inverter as duas cores, obterá, é claro, uma fonte em relevo em vez de uma fonte rebaixada. Extrudada ou fonte em bloco 3D: pode ser gerada repetindo a fonte várias vezes.
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
Note que isto NÃO é uma simples sombra, mas um verdadeiro espessamento da fonte desenhada. É bastante repetitivo e pode ser usado para qualquer imagem com 'forma'. Para outro exemplo disso, consulte Adicionando Espessura a uma Miniatura.
Fonte com Contorno : Podemos criar uma fonte com contorno usando vários desenhos com pequenos deslocamentos de posição.
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 isto também é bastante repetitivo, não é uma boa solução de contorno. Como o ImageMagick permite desenhar o contorno da fonte definindo a configuração "[-stroke](https://imagemagick.org/command-line-options/#stroke)", existem soluções muito melhores. (Veja as Fontes com Traço abaixo). Ainda assim, múltiplos redesenhos como este, para gerar um contorno, podem ser muito úteis com imagens de clip-art pré-preparadas, como as que se encontram por toda a Internet. Também é uma técnica útil para outras bibliotecas e programas gráficos (como o "GD" do "PHP", etc.), onde a configuração "[-stroke](https://imagemagick.org/command-line-options/#stroke)" não está disponível para uso. Outra razão para mostrar esse estilo de contorno é que o resultado pode ser melhor ao contornar uma fonte com pontas muito afiadas. Por exemplo, aqui desenhamos a fonte 12 vezes para destacar as pontas afiadas da fonte. O contorno aqui também foi desenhado um pouco mais grosso.
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
Você também notará que a cor de desenho -fill" pode ser alterada dentro do argumento "[-draw](https://imagemagick.org/command-line-options/#draw)". Contorno Multicolorido : A outra razão pela qual essa técnica é útil é que você não está limitado a apenas uma cor de contorno ao desenhar a fonte. Ao redesenhar a fonte 12 vezes em 5 cores diferentes, numa sequência muito cuidadosamente projetada, você pode criar uma fonte 'em relevo' colorida, com certa suavização das cores nas bordas.
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
Existem métodos melhores para criar uma fonte em relevo como esta, mas este funciona, é simples e usa apenas algumas cores, em vez de toda uma gama de cores. Fonte de Contorno (Traço) : A configuração "[-stroke](https://imagemagick.org/command-line-options/#stroke)" permite desenhar diretamente um contorno da fonte. Normalmente a cor do traço é definida como "none", portanto não é usada. A espessura do traço varia com "[-strokewidth](https://imagemagick.org/command-line-options/#strokewidth)", cujo valor padrão adequado é 1.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill white -stroke black -annotate +25+65 'Anthony' \
font_stroke.jpg
E aqui está um exemplo com uma espessura de traço maior, 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
Observe como a cor do traço corrói não apenas a parte externa da fonte, mas também a interna. Para mais detalhes, consulte os resultados das minhas Opções de Traço e Largura do Traço.
Traço Grosso : Redesenhando novamente a fonte uma segunda vez, mas sem o traço ativado, as partes internas das linhas são removidas, criando uma fonte com contorno grosso mais agradável.
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
O uso da configuração -stroke" é levado ainda mais adiante em Opções de Traço e Largura do Traço, onde esse aspecto dos operadores de desenho é explorado com maior profundidade. Traço Fino : Desativando a cor de preenchimento, você pode deixar apenas o contorno da fonte.
magick -size 320x100 xc:lightblue -font Candice -pointsize 72 \
-fill none -stroke black -annotate +25+65 'Anthony' \
font_stroke_thin.jpg
Contorno Duplo : Redesenhando com múltiplas espessuras de traço, você pode gerar um contorno duplo! O primeiro desenho pode usar qualquer cor de preenchimento para preencher o interior da fonte, ou ser deixado como none, como fizemos aqui, para não alterar o fundo. No entanto, o último desenho da fonte deve ser feito com a configuração de preenchimento "none", ou não 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
Diferentemente da 'fonte de carimbo' anterior, o exemplo acima não exigiu que a parte central da fonte fosse apagada. Por isso, ele funciona sobre qualquer fundo sem complicações. Fonte Psicodélica : De modo semelhante, reduzindo lentamente o tamanho da largura do traço enquanto se alternam as cores, um efeito de contorno psicodélico pode ser gerado com facilidade.
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
Você pode torná-la ainda mais psicodélica usando cores que contrastem, diferentes larguras de traço ou até mesmo movendo um pouco a posição da fonte. Experimente e veja o que consegue criar. Efeito Balão : Aqui fiz exatamente o mesmo que na "Fonte com Traço Grosso" acima, mas, puramente por acaso, usei uma cor de traço branca ao redesenhar a fonte. Isso resultou em uma ampliação interessante da fonte, com um contorno grosso. A fonte de aspecto 'inflado' parece ter sido enchida como um balão. Isso apenas mostra que vale a pena experimentar para ver o que se pode 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 uma pequena configuração negativa de Espaçamento de Caracteres (Kerning) (adicionada no IM v6.4.7-10) e desenhando a fonte duas vezes (como no exemplo anterior), você pode fazer com que todos os caracteres de uma fonte 'grossa' se unam, produzindo uma variação interessante.
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 Sobrepostos : Uma variação disto, no entanto, é desenhar cada caractere separadamente, de modo que cada caractere fique sobreposto aos 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
Isso, no entanto, exige que você determine (manualmente ou automaticamente com um script) a posição apropriada de cada caractere. A largura natural de cada caractere pode ser determinada gerando rótulos de cada caractere sem qualquer configuração "[-strokewidth](https://imagemagick.org/command-line-options/#strokewitdh)". Veja Determinando Métricas de Fonte para exemplos. Note que, diferentemente do uso da configuração "[-kerning](https://imagemagick.org/command-line-options/#kerning)" (exemplo anterior), a posição de cada caractere acima foi ajustada artisticamente em quantidades diferentes, em vez de apenas uma quantidade fixa simples. Por exemplo, há apenas uma pequena sobreposição entre o 't' e o 'h', mas uma sobreposição bem maior entre os caracteres 'n' e 'y'. Caracteres Trepidantes : se você chegar ao ponto de desenhar caracteres individuais (sobrepostos ou não), então pode dispô-los num padrão 'trepidante' (jitter) ou aleatório, em especial com diferentes deslocamentos para cima e para baixo. Você pode até levar isso ao extremo para gerar um efeito 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
Fonte Difusa : Um espalhamento direto da cor da fonte usando o operador "[-blur](https://imagemagick.org/command-line-options/#blur)". Esse operador permite pegar uma imagem e espalhá-la em todas as direções. Isso permite gerar sombras de aparência mais suave e/ou efeitos semelhantes a tinta em spray. Os exemplos a seguir mostram os efeitos que você pode obter com isso.
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 : O operador "[-shadow](https://imagemagick.org/command-line-options/#shadow)" não só permite gerar e posicionar sombras suaves e difusas para imagens que contêm transparência, como também permite usar qualquer cor e definir um nível geral de transparência.
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 mais informações sobre o operador "[-shadow](https://imagemagick.org/command-line-options/#shadow)", consulte Gerando Sombras. A partir do IM v6.3.1, o comando "[montage](montage.html)" também pode gerar sombras suaves 'com forma' de imagens que contêm transparência. Isso significa que você pode aplicar uma sombra a uma imagem "[label:](text.html#label)" com muita facilidade.
montage -background none -fill white -font Candice \
-pointsize 72 label:'Anthony' +set label \
-shadow -background lightblue -geometry +5+5 \
font_montage_shadow.jpg
Contudo, você não tem qualquer controle sobre o deslocamento, a cor ou a intensidade do blur da sombra do montage (por enquanto). Contorno Suave : use a fonte difusa como borda do contorno. Isso é como usar a fonte original como máscara para uma pistola de spray.
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
Note que a borda fica muito clara, pois não só a cor preta se espalha para fora, como também a cor do fundo se espalha para dentro, deixando a borda apenas 50% escura. Uma forma de corrigir isso é usar um Contorno de Sombra, com um Ajuste de Nível para corrigir essa claridade, embora isso utilize algumas técnicas de processamento de imagem bastante avançadas. Contorno Suave Mais Denso : Outra forma de corrigir a claridade do contorno suave é aplicar o blur a uma fonte que tenha um contorno de traço largo. Isso efetivamente afasta o ponto de blur de 50% da borda da fonte. Também permite usar um valor de blur ainda maior, deixando a cor preta se espalhar mais para fora.
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 um exemplo prático desse método, veja os exemplos gerados em Adicionando rótulos de imagem a miniaturas e o último exemplo em Anotando Sobre Imagens.
Sombra Borrada por Distância : Com a introdução do Mapeamento de Blur Variável, agora você pode aplicar blur a uma sombra de modo que ela fique mais borrada conforme a distância aparente dessa sombra em relação ao objeto que a projeta. Por exemplo, aqui peguei a Fonte com Sombra Cisalhada e apliquei blur à sombra de modo que ela fique sem blur no topo e mais borrada na base.
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
Note que não usei apenas um blur circular, pois a luz que incide sobre uma superfície inclinada forma elipses, e não círculos. Por isso o blur também precisa formar elipses. Basicamente, usei uma variante de Blur Elíptico para obter esse efeito. Um ponto final: usar os argumentos de ângulo do annotate para criar o texto cisalhado (veja Uso do Argumento Annotate) provavelmente não é a melhor maneira de gerar a sombra 3D inicial como esta. Basicamente, ele não consegue tornar a sombra mais curta ou mais longa, como uma sombra real, pois só faz um cisalhamento por rotação. Um método melhor é usar uma Distorção Afim de três pontos, que lhe dá melhor controle sobre o posicionamento da sombra (Veja Sombras 3D, usando Cisalhamentos Afins). É claro que você ainda precisará da técnica de Blur Variável para deixar tudo com a aparência correta.
Fonte de Impressão Suja : Os pixels são espalhados ligeiramente, depois são desfocadas e passam por limiarização algumas vezes algumas vezes para suavizar o contorno final. O resultado é uma fonte que parece ter sido impressa em papel de jornal grosseiro.
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 fonte veio da discussão How to dirty a font, que inclui outros métodos mais complexos.
Fonte com Chanfro : O Operador Shade pode ser usado para gerar uma fonte 3D de aparência muito agradável, com uma borda chanfrada e suavemente curva.
magick -size 320x100 xc:black -font Candice -pointsize 72 \
-fill white -annotate +25+65 'Anthony' \
-shade 140x45 font_beveled.jpg
Isto é muito mais agradável do que a fonte de carimbo, mas o shade só gera imagens em tons de cinza. Por outro lado, há muitos métodos que podem substituir os tons de cinza do resultado acima por quaisquer cores que você precise. O maior problema de usar o shade para 'chanfrar' uma fonte é que a espessura do chanfro não é facilmente ajustável. Ela é basicamente fixa em uma espessura de aproximadamente 5 pixels, independentemente do tamanho da fonte usado.
Fonte Cônica : Usando o novo Método Distance da Morfologia (a partir do IM v6.6.2) combinado com o Operador Shade, você pode fazer a fonte inteira parecer uma cordilheira tridimensional. Isso requer um tratamento especial dos pixels de anti-aliasing, conforme Distance com uma Forma com Anti-aliasing, mas o resultado é uma fonte cônica, semelhante a uma montanha.
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
Adicionando um pouco de "[-adaptive-blur](https://imagemagick.org/command-line-options/#adaptive-blur)", você pode suavizar o resultado para gerar uma aparência melhor e estranhamente brilhante na fonte 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 o "[-adaptive-blur](https://imagemagick.org/command-line-options/#adaptive-blur)" para antes do uso do Shade fará com que as bordas fiquem borradas, mas não a crista central (o esqueleto) das formas da fonte. O resultado parece que as cristas afiadas estão empurrando para cima contra uma folha de borracha.
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 um Núcleo de Distância diferente, como o Chebyshev, funciona melhor com fontes de aparência mais regular, como a família de fontes 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
Fonte com Chanfro Interno : Limitar a distância recortando a função de distância chanfra apenas as bordas da 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
Fonte em Arco (Arch) : O operador "[-wave](https://imagemagick.org/command-line-options/#wave)" (veja Deslocamento por Onda Senoidal para detalhes) deslocará os pixels da imagem verticalmente, formando um arco. As verticais permanecerão verticais, com os caracteres sendo cisalhados para produzir a 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
Note que, para usar o "[-wave](https://imagemagick.org/command-line-options/#wave)" para criar um arco, você precisa usar um 'comprimento de onda' que seja o dobro da largura da imagem (2 × 320, ou 640 pixels). Além disso, como o "[-wave](https://imagemagick.org/command-line-options/#wave)" adiciona espaço extra à imagem na proporção em que ela é arqueada, esse espaço precisa ser aparado ou recortado depois. É uma forma simples, rápida, mas eficaz de criar um arco de texto. Fonte em Arco (Arc) : O Operador de Distorção Geral também oferece outros métodos de deformação de texto/imagem. O método '[Arc](distorts.html#arc)', por exemplo, dobrará uma fonte em um verdadeiro arco circular, em vez do 'arco' deslocado verticalmente do exemplo 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
Fonte em Círculo : Você pode até levar isso ao extremo e envolver o texto em um círculo completo, ou quase completo.
magick -font Candice -pointsize 32 -background lightblue \
-fill navy label:"Anthony's IM Examples" \
-virtual-pixel background -distort Arc 340 \
font_circle.jpg
Veja Distorção Arc para mais opções e possibilidades. Fonte em Espiral : Adicionando uma pequena rotação para inclinar a fonte em um ângulo antes de envolvê-la, o círculo pode ser convertido em uma 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
A altura do texto (radialmente), no entanto, permanece constante; ela não é esticada nem comprimida à medida que se aproxima do centro, produzindo forte distorção de proporção nos caracteres. Você poderia resolver isso usando uma distorção de perspectiva como parte da rotação do texto, para ajustar a altura da fonte antes de aplicar a distorção Arc. O problema dessa técnica é que você só consegue fazer uma volta da espiral, embora, com múltiplas linhas e algum cuidado para alinhá-las, você pudesse gerar várias espirais. Se você tentar isto, poderia me enviar um exemplo?
Fonte Vibrato : O operador "[-wave](https://imagemagick.org/command-line-options/#wave)" que usamos na Fonte em Arco (Arch) acima também pode ser usado com frequência mais alta e amplitude menor para criar uma fonte vibrante. Além disso, adicionando algumas operações de rotação, você pode até fazer a vibração em qualquer ângulo que quiser!
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 mais informações sobre o uso de distorções como esta, consulte a página de exemplos sobre Deformando Imagens, e em especial o Operador de Distorção Wave. Fonte Cometa : Um dos operadores de blur especializados, o "[-motion-blur](https://imagemagick.org/command-line-options/#motion-blur)", permite criar uma cauda semelhante à de um cometa em objetos de uma imagem.
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
Você pode animar esta fonte composta usando cores diferentes para criar um verdadeiro evento flamejante. Também é possível fazer muito mais com Blurs Especializados; no entanto, todo esse aspecto do IM ainda é experimental e a sintaxe desses operadores pode mudar em um futuro próximo. Fonte Fumaça : combinando isto com o wave, você pode fazer a fonte cometa parecer fumaça, um cheiro, ou até mesmo chamas subindo da fonte!
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
Você tem alguma transformação interessante para acrescentar à lista acima?
Usando uma Imagem de Máscara com Fontes
Desenhar uma "Fonte de Carimbo" sobre uma imagem de fundo é, na verdade, bem mais difícil do que a maioria dos métodos de geração de fontes sofisticadas que detalhei acima. A razão é que parte da fonte original é apagada, o que apresenta um problema ao desenhá-la sobre um fundo que não seja de cor sólida simples. Aqui está a imagem de fonte composta que geramos acima.
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
Se tentarmos desenhar a fonte sobre um fundo transparente (imagem em formato PNG), usando exatamente o mesmo método, simplesmente falhamos...
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
O que aconteceu foi que tentamos apagar a parte central da fonte com a cor "transparente". Mas, como você pode ver, desenhar com transparência simplesmente não desenha nada! Assim, o resultado acima foi o mesmo que se o último operador de 'apagar' -annotate" não funcionasse de forma alguma. Existem cerca de meia dúzia de soluções para esse problema. Apresentarei três desses métodos aqui, enquanto outros são discutidos em vários outros lugares nas páginas de exemplos do IM. Provavelmente o mais simples é não corrigir a fonte acima de forma alguma, mas usar uma 'máscara' ao desenhá-la sobre a imagem de fundo, para dizer ao comando "magick composite" que ignore a seção central. Uma imagem de máscara do "magick composite" é uma imagem em tons de cinza, com preto puro para as partes que serão transparentes e branco puro para as partes que você quer completamente visíveis (opacas). Quaisquer tons de cinza serão desenhados como semitransparentes, mesclando-se com as cores de fundo por baixo. Bem, nossa imagem acima está quase certa, então vamos apenas mascarar todas as partes que não queremos. Começamos com um fundo preto (totalmente transparente), depois desenhamos tudo o que queremos em branco, e tudo o que não queremos em preto.
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
Note que a máscara que criamos não é apenas preto e branco, mas tem vários tons de cinza ao longo das bordas das áreas devido ao anti-aliasing (Veja Exemplos de Anti-Aliasing para detalhes). Esses pixels cinza tornam as bordas da imagem final mais suaves, e são muito importantes, pois representam pixels semitransparentes (apenas parcialmente visíveis). Agora que temos uma máscara, podemos mascarar as seções indesejadas da imagem. Podemos fazer isso enquanto desenhamos (sobrepomos) a imagem sobre um fundo de plasma. Note a ordem dos três argumentos de imagem (fonte, fundo e, então, a 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
Uma forma de três argumentos do "magick -composite" disso é...
magick plasma_background.jpg trans_stamp.png mask_mask.jpg \
-composite mask_result2.jpg
Bom resultado, mas agora precisamos de duas imagens para desenhar a fonte composta. Seria melhor se precisássemos apenas de uma imagem, com a máscara embutida diretamente na própria imagem. Basicamente, queremos substituir completamente o canal alfa da nossa imagem de fonte por uma cópia da máscara de imagem da fonte que criamos. Ou seja, mesclamos a imagem da fonte (fornecendo as cores dos pixels) diretamente com sua máscara (fornecendo o canal alfa da imagem). A configuração de composição alfa '[CopyOpacity](compose.html#copyopacity)' faz essa substituição. Note a ordem dos argumentos no comando. Neste caso, a própria fonte é a imagem de fundo, enquanto a máscara é a imagem sendo sobreposta à imagem de fundo.
magick composite -compose CopyOpacity mask_mask.jpg trans_stamp.png \
trans_stamp3.png
magick composite trans_stamp3.png plasma_background.jpg mask_result3.jpg
| O resultado de tudo isso é que a parte central da fonte foi, finalmente, apagada de forma adequada, tornando-a totalmente transparente. A imagem única resultante pode assim ser sobreposta a qualquer fundo com facilidade, sem precisar de nenhuma imagem de máscara extra. | Reduzir um carimbo de fonte transparente grande como o acima cria uma marca-d'água muito boa. A redução tornará o contorno menos opaco e menos pronunciado, exatamente como uma marca-d'água deve ser. As duas cores também garantem que a marca seja visível de forma confiável tanto em imagens muito claras quanto muito escuras. |
|---|---|
| Para mais informações sobre o uso de máscaras de imagem, consulte Editando Máscaras de Imagem. |
Processamento Avançado de Fontes
Combinando as técnicas acima, com cores apropriadas e outras fontes sofisticadas disponíveis, você pode criar alguns efeitos fantásticos, que muitas vezes parecem completamente diferentes das técnicas originais mostradas acima.
Fontes Mais Complexas - um exemplo
Por exemplo, aqui geramos um trecho de texto muito complexo e 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
O comando complexo acima está disposto de modo a executar cada etapa principal de processamento de imagem em linhas separadas. Primeiro, a imagem de texto é criada. Em seguida, um Gradiente de Dois Pontos é gerado como uma sobreposição de cor. Outros métodos de coloração, como Imagens Aleatórias Borradas, Plasma Fractal ou Telas com Tile, também poderiam ter sido usados. A sobreposição de cor é então usada para colorir o texto usando o operador de Composição Alfa In. O texto colorido é então distorcido usando uma Distorção Arc e, por fim, uma Sombra é gerada e Mesclada por Camada sob o texto. Esse último método também Remove a Transparência, substituindo-a por branco, antes de salvar em JPEG. Para mais informações sobre esse processamento de imagem complexo, consulte Processamento de Imagem Complexo e Depuração.
Letreiro de Néon
Aqui está outro exemplo simples. Usando uma fonte de Contorno Suave sobre um fundo escuro, mas usando todas as mesmas cores e uma fonte apropriada, você pode gerar um simples efeito de 'Letreiro de Néon'...
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
E com apenas um pouco mais de trabalho, você também pode animá-lo! Mas deixarei isso como exercício para o leitor. Veja Exemplos Avançados do IM para efeitos especiais como Efeitos "Gel" e Efeitos "Aqua". Para alguns exemplos de outros efeitos de fonte que você talvez queira tentar implementar, veja XaraXone, Using Contour Tool. O IM pode facilmente criar efeitos de contorno como os mostrados ali.
Efeito Metálico
Este efeito é, essencialmente, um efeito de arredondamento e de substituição por Tabela de Consulta de Cores (Color Lookup Table). Veja a discussão Metallic Effect. Exemplo funcional por snibgo
# Gera uma máscara com o formato da fonte de entrada, borrada
# o primeiro blur-level é um efeito de arredondamento ou 'poça'
# o segundo blur é o importante para o efeito metálico.
magick -background none -pointsize 160 -font Candice label:" Anthony " \
-blur 0x5 -channel A -level 40%,60% +channel \
-blur 0x3 metallic_input.png
# Tabela de Consulta de Cores 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
# Dá à fonte borrada uma aparência metálica
# * primeiro cria um gradiente vertical
# * depois mescla-o com um gradiente reflexivo 'shade'
# * antes de aplicar a cor ao gradiente resultante
# * por fim adiciona uma 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)