¿Existe un programa de línea de comandos (para Linux) que pueda convertir una imagen a ascii art y luego guardar esa salida como una imagen, por ejemplo, jpg o png?
Para ilustrar lo que necesito, quiero convertir la siguiente imagen en arte ascii
El resultado que deseo de un programa debería ser similar a este, que fue creado al tomar una captura de pantalla del resultado de un convertidor de imagen a ASCII (el resultado era texto puro)
Soy consciente de que GIMP tiene la capacidad de guardar una imagen como arte ascii y aview también puede convertir una imagen a ascii. Sin embargo, lo primero no se puede hacer a través de la línea de comando y lo segundo solo le permite ver el resultado, no guardarlo (no quiero recurrir a tomar una captura de pantalla del resultado).
También soy consciente de que libcaca puede guardar su salida en una imagen, pero solo genera ascii coloridos, como a continuación.
Hecho convirtiendo la imagen de origen a escala de grises y luego con el siguiente comando:
img2txt -W 70 -f tga input.jpg > output.tga
La razón para querer un programa de línea de comandos es procesar por lotes una carpeta llena de imágenes.
convert
(ImageMagick). Si configura la salida -f de img2txt en ansi (en lugar de ansi de color), puede canalizar el resultado para convertir (u otro software adecuado)Respuestas:
Puede usar este código de Python que creé para crear arte ascii a partir de imágenes fijas y videos:
https://gist.github.com/lindylex/9374326
Salida de ejemplo
Original
Salida de arte ASCII (
python ascii_movie_image_ver_1.py cat.jpg 4 10
)fuente
En caso de que parezca que está ejecutando Linux, puede unir las aplicaciones fácilmente para obtener el resultado deseado. Esto también se puede incorporar en su secuencia de comandos de procesamiento por lotes.
El siguiente ejemplo hace uso de jp2a , un potente conversor de JPG a arte ASCII con muchas opciones para lograr los resultados deseados (consulte la página de manual). Luego procesamos aún más el archivo de texto ASCII resultante en una imagen usando la conversión de la suite ImageMagick . Nuevamente, hay muchas opciones para ajustar el resultado. Es probable que ambas aplicaciones estén disponibles en los repositorios de su distribución.
El siguiente script de ejemplo producirá una imagen de arte ASCII (el formato depende de la extensión que le demos,
.jpg
es para JPEG) a partir de una imagen JPEG de entrada. La fuente se representa con un ancho de 160 caracteres a 6 pt. Esto solo se ajustará al tamaño de página predeterminado como está predefinido desde la conversión.fuente
835px
? Quiero convertir el arte ascii en una1920x1080
imagen de fondo de pantalla, pero cuando paso la-resize 1920x1080
opción, el ancho permanece en835px
.brew install jp2a
.jp2a --html --width=160 --chars="\'\"love" input.jpg --output=output.htm
. Puede especificar su conjunto preferido de caracteres para la representación (deberá escapar de los metacaracteres si desea usarlos). Para jp2a ver también AUR para Arch .En Node.js Knockout 2012, hubo una presentación ganadora que tomó un video de la cámara web y escupió un "feed ascii":
Asciigrama
No es exactamente la línea de comando, pero tal vez pueda adaptarla para sus necesidades. La biblioteca que usan para convertir la imagen a ascii se llama Jscii .
fuente
Yo uso jp2a para el arte ascii. Fácil de usar desde la línea de comandos:
Y puede probar los resultados en línea en asciiconvert.com .
fuente
Parece que estás usando Linux y ya conoces libcaca. Hay otra biblioteca que hace exactamente lo que dices (Imagen a Ascii en la línea de comando): Aalib .
Hay muchos programas que hacen esto. Este funciona tanto en Linux como en Windows . No utiliza bibliotecas externas, código fuente completo disponible, etc.
fuente
Siempre que sepa que el programa no tiene una interfaz de línea de comando, pero convierte imágenes a texto y luego a imágenes. Source está disponible, por lo que puede usarlo para escribir su propia herramienta.
Tienes razón, aalib no genera imágenes, pero genera texto. Además de muchos otros programas que funcionan en la línea de comandos.
Si está utilizando Linux, hay un programa de línea de comandos llamado asciitopgm que convertirá el texto ascii en un mapa de bits. Es parte del paquete netpbm.
Para que pueda usar una combinación de herramientas:
Creo que puedes hacer lo que quieras de esta manera.
fuente
Sí, hay una herramienta llamada
jp2a
que básicamente convierte una imagen jpg en un arte ascii.P.ej:
Original Skull.jpg
Arte Ascii de salida
Asegúrese de usar la imagen jpg. Si su imagen está en otro formato, puede cambiarla
fuente