Existe um programa de linha de comando (para Linux) que pode converter uma imagem em arte ascii e salvar essa saída como imagem, por exemplo, jpg ou png?
Para ilustrar o que eu preciso, quero converter a imagem abaixo em arte ascii
A saída que eu desejo de um programa deve ser semelhante a esta, criada por meio de uma captura de tela da saída de um conversor de imagem para ascii (a saída era texto puro)
Estou ciente de que o GIMP tem a capacidade de salvar uma imagem como arte ascii e o aview também pode converter uma imagem em ascii. No entanto, o primeiro não pode ser feito via linha de comando e o último apenas permite visualizar a saída, não salvá-la (não quero recorrer a uma captura de tela da saída).
Também estou ciente de que a libcaca pode salvar sua saída em uma imagem, mas só gera ascii coloridos, como abaixo.
Feito convertendo a imagem de origem em escala de cinza e, em seguida, com o seguinte comando:
img2txt -W 70 -f tga input.jpg > output.tga
O motivo para desejar um programa de linha de comando é processar em lote uma pasta cheia de imagens.
fonte
convert
(ImageMagick). Se você definir o -f saída do img2txt para ansi (em vez de ansi colorido), você pode enviar o resultado para converter (ou outro software adequado)Respostas:
Você pode usar este código python que criei para criar arte ascii a partir de imagens estáticas e vídeos:
https://gist.github.com/lindylex/9374326
Saída de exemplo
Original
Saída de arte ASCII (
python ascii_movie_image_ver_1.py cat.jpg 4 10
)fonte
Caso você pareça estar executando o Linux, você pode costurar os aplicativos facilmente para obter o resultado desejado. Isso também pode ser incorporado ao seu script de processamento em lote.
O exemplo abaixo faz uso do jp2a , um poderoso conversor de JPG para ASCII-art com muitas opções para alcançar os resultados desejados (consulte a página de manual). Em seguida, processamos o arquivo de texto ASCII resultante em uma imagem usando o convert do pacote ImageMagick . Novamente, existem muitas opções para ajustar o resultado. É provável que ambos os aplicativos estejam disponíveis nos repositórios da sua distribuição.
O script de exemplo abaixo produzirá uma imagem de arte ASCII (o formato dependendo da extensão que fornecemos
.jpg
é para JPEG) a partir de uma imagem JPEG de entrada. A fonte é renderizada para 160 caracteres de largura em 6 pt. Isso será ajustado apenas no tamanho da página padrão, conforme predefinido na conversão.fonte
835px
? Quero converter a arte ascii em uma1920x1080
imagem de papel de parede, mas quando passo a-resize 1920x1080
opção, a largura permanece em835px
.brew install jp2a
.jp2a --html --width=160 --chars="\'\"love" input.jpg --output=output.htm
. Você pode especificar o seu conjunto preferido de caracteres para a renderização (você precisará escapar dos metacaracteres se desejar usá-los). Para jp2a, veja também AUR para Arch .No Node.js Knockout 2012, houve um envio vencedor que pegou um feed de vídeo da webcam e soltou um "feed ascii":
Asciigram
Não é exatamente a linha de comando, mas talvez você possa adaptá-lo para suas necessidades. A biblioteca que eles usam para converter a imagem em ascii é chamada Jscii .
fonte
Eu uso o jp2a para ascii art. Simples de usar na linha de comando:
E pode testar os resultados on-line em asciiconvert.com .
fonte
Você parece estar usando Linux e já conhece a libcaca. Há outra biblioteca que faz exatamente o que você diz (Imagem para Ascii na linha de comando): Aalib .
Existem muitos programas que fazem isso. Este funciona tanto no Linux quanto no Windows . Não usa bibliotecas externas, código fonte completo disponível, etc ...
fonte
Desde que eu saiba que o programa não tem uma interface de linha de comando, mas converte imagens em texto e depois em imagens. A fonte está disponível, para que você possa usá-la para escrever sua própria ferramenta.
Você está certo, o aalib não gera imagens, mas gera texto. Assim como muitos outros programas que funcionam na linha de comando.
Se você estiver usando Linux, existe um programa de linha de comando chamado asciitopgm que converterá texto ascii em um bitmap. Faz parte do pacote netpbm.
Então você pode usar uma combinação de ferramentas:
Eu acho que você pode fazer o que quiser dessa maneira.
fonte
Sim, existe uma ferramenta chamada
jp2a
que basicamente converte uma imagem jpg em uma arte ascii.Por exemplo:
Original Skull.jpg
Arte Ascii de Saída
Certifique-se de usar a imagem jpg. Se a sua imagem estiver em outro formato, você poderá alterá-la
fonte