Por Leonardo - umactualmente
asciipixels es una biblioteca rápida y fácil para convertir imágenes y videos en arte ASCII altamente personalizable. La biblioteca tiene cuatro funciones principales que hacen todo el trabajo de asciificación y guardan el resultado como una imagen, GIF o video: image.asciify() , image.dynamic_asciify() , video.asciify() y video.dynamic_asciify() .
Para un control más granular de lo que debe hacer el programa, la clase CoreAsciifier (la clase detrás de las funciones primarias de Asciipíxeles) y las funciones de envoltura para ImagemAgick y FFMPEG también están disponibles.
Lo que realmente distingue a la biblioteca ASCIIPIXELS es la funcionalidad dinámica . En las funciones image.dynamic_asciify() y video.dynamic_asciify() Algunos parámetros pueden cambiar con el tiempo. El usuario puede pasar calles que reciben el número de cuadro y devolver el valor del parámetro, en lugar de pasar el valor codificado en sí. En el siguiente ejemplo, el parámetro definition aumenta en 16 unidades en cada cuadro. Está modelado por una expresión lambda muy simple.

Nota: ASCIIPIXELS depende de dos software de línea de comandos particular: ImageMagick y FFMPEG . Si eres un cli nerd y ya los tienes instalados, continúe con esta guía. Si no, vaya a la sección de instalación.
Use la función correspondiente según su caso de uso:
image.asciify() convierte la imagen en imagen. El arte ASCII generado se devuelve como una cadena y opcionalmente se guarda en un txt.
image.dynamic_asciify() convierte la imagen en video GIF o MP4. Admite parámetros dinámicos.
video.asciify() convierte el video en video.
video.dynamic_asciify() convierte el video en video. Admite parámetros dinámicos.
Los cuatro tienen la path del archivo de entrada como el primer argumento. El resto de los argumentos tienen valores predeterminados . Algo en este sentido es suficiente para comenzar:
import asciipixels as ap
ap . image . asciify ( 'foo.png' ) Esto generará una nueva imagen asciificada llamada foo2.png .
Es importante tener en cuenta que todas las funciones excepto image.asciify() requieren un if __name__ == '__main__' Verifique el nivel superior del código de usuario ( a menos que esté utilizando Python interactiva en la línea de comandos). Esto se debe a que la biblioteca usa el multiprocesamiento para acelerar la generación de cuadros. Entonces, para ascender un video, por ejemplo, puede hacer lo siguiente:
import asciipixels as ap
if __name__ == '__main__' :
ap . video . asciify ( 'foo.mp4' ) El parámetro más importante para jugar es la definition . Es simplemente el número de caracteres en el eje horizontal . El valor predeterminado a 100 en todas las funciones. Establecer demasiado alto y el arte ASCII se verá como el arte. Establecer demasiado bajo y solo se verá como ASCII.
Además, tenga en cuenta que puede establecer la resolución de salida de la imagen/video. Las dimensiones de salida se aproximan a las dimensiones de entrada de forma predeterminada, pero puede cambiar eso con el argumento out_width .
Por último, si decide trabajar con texto oscuro en un fondo claro , recuerde establecer reverse_chars en True para corregir el mapeo Pixel a ASCII.
Como último ejemplo, hice el BigWeld GIF en la sección What is 'Dynamic' con el siguiente código:
import asciipixels as ap
if __name__ == '__main__' :
ap . image . dynamic_asciify (
'ceo.png' ,
bg_color = 255 ,
txt_color = 0 ,
definition = lambda f : f * 16 ,
fps = 2 ,
frame_count = 7 ,
out_width = 1000 ,
reverse_chars = True
)La lista completa de parámetros/argumentos de una función primaria dada se puede encontrar en su documentación.
Para instalar AsciIpixels, use PIP en el terminal:
Windows
pip install asciipixels
MacOS / Linux
python3 -m pip install asciipixels
ASCIIPIXELS tiene dos dependencias que no están instaladas automáticamente. Estos son ImageMagick , para la manipulación de imágenes y FFMPEG , para la manipulación de video y audio. Puede descargarlos desde sus sitios oficiales o usando Homebrew (si corresponde).
Instale ImageMagick aquí
Instalar ffmpeg aquí
El arte ASCII es simplemente la representación de imágenes (o video) con caracteres y letras. Este arte puede componerse utilizando personajes que coincidan con el brillo o el contorno de una parte de una imagen. Esta biblioteca funciona con el aspecto de brillo.