Acho que o -annotateoperador do ImageMagick é um pouco mais conveniente do que o -drawmétodo sugerido por TheRed, pela simples razão de que ele não requer modificação no arquivo de entrada. Não é tão poderoso quanto -draw, mas para o descarte por atacado do conteúdo de um arquivo de texto em uma imagem, ele serve muito bem.
convert -size 360x360 xc:white -font "FreeMono" -pointsize 12 -fill black \
-annotate +15+15 "@ascii.txt" image.png
produzirá uma versão renderizada do conteúdo do arquivo, mas sem precisar modificar o arquivo "ascii.txt" para conter a text 15x15parte da -drawprimitiva.
Especificando argumentos
O argumento para -fontpode ser qualquer nome de fonte suportado, se o FreeMono não estiver disponível (ou simplesmente não for desejado). Uma lista das fontes disponíveis para qualquer comando ImageMagick pode ser obtida usando o -listoperador, para convert -list fontexibir todos os argumentos possíveis para -font.
Os argumentos para -annotate(até que ponto deslocar o texto renderizado da borda da tela) consistem em deslocamentos de pixel horizontal e vertical (respectivamente). O primeiro deslocamento (deslocamento x horizontal) pode ser qualquer número inteiro positivo, mas não precisa ser maior que alguns pixels. O segundo deslocamento (deslocamento vertical em y) deve ser pelo menos igual ao tamanho do ponto da fonte escolhida (o argumento para -pointsize), porque o ImageMagick colocará a linha de base da fonte no deslocamento especificado. Portanto, se você não mudar a fonte para pelo menos pointsizepixels, a parte superior da primeira linha será cortada.
Eu recomendo passar por vários pixels, pelo menos, então se você estiver usando -pointsize 64, você deve emparelhá-lo com algo parecido -annotate +15+80. (Não há motivo para aumentar o deslocamento horizontal com tamanhos de fonte maiores, ele não tem relação com as dimensões do texto.)
Precisando adivinhar as dimensões necessárias da imagem de saída também pode ser entediante. Normalmente, apenas escolho valores excessivos, depois aproveito o ImageMagick -trime -bordercorro o resultado automaticamente. O seguinte comando:
convert -size 1000x2000 xc:white -font "FreeMono" -pointsize 12 -fill black \
-annotate +15+15 "@ascii.txt" -trim -bordercolor "#FFF" -border 10 +repage image.png
será renderizado em uma caixa de 1000 x 2000 e, em seguida, apara o excesso de espaço em branco, exceto por uma borda de 10 pixels ao redor do texto. No +repagefinal, impede que o PNG de saída seja criado com um deslocamento de imagem, o que faria com que o GIMP exibisse uma caixa de diálogo ao carregar perguntando se deveria aplicar o deslocamento.
(Obviamente, 1000x2000 é excessivo para arquivos de texto pequenos e, para arquivos mais longos, pelo menos a dimensão vertical pode precisar ser aumentada. Porém, é mais fácil superestimar, pois o único custo é convertconsumir um pouco mais de CPU e memória durante o processamento.)
Entrada de pré-processamento
Se o seu arquivo de texto ainda não estiver formatado da maneira que você precisa para renderizá-lo (por exemplo, se ele usa linhas muito longas), talvez seja necessário reformatá-lo antes de entregá-lo convert. O ImageMagick não quebra o texto; portanto, cada linha de texto aumentará seu comprimento horizontalmente. Felizmente, é possível executar o arquivo através dos formatadores de linha de comando que você desejar e canalizar o texto processado em convertvez de ler diretamente do arquivo:
fmt < ascii.txt | convert -size 1000x2000 xc:white -font "DejaVu-Sans-Condensed" \
-pointsize 24 -fill black -annotate +15+30 "@-" -trim -bordercolor "#FFF" \
-border 10 +repage image.png
Isso renderizará o conteúdo do ascii.txtDejaVu Sans Condensed de 24 pontos, depois de processado pelo fmtcomando, que em seu modo padrão de operação reformatará sua entrada por quebra de linha para uma largura de 75 colunas. (A menos que haja longas sequências contínuas com mais de 75 caracteres, como URLs, nesse caso, elas serão estendidas.)
Depois de fmtreformatar o texto, ele será passado para o convertqual renderizará a fmtsaída canalizada , como se estivesse lendo o arquivo diretamente. (Especificar um nome de arquivo de -é uma abreviação do shell UNIX bastante comum para "ler da entrada padrão, em vez de qualquer arquivo de disco nomeado", e as ferramentas do ImageMagick seguem essa convenção.)