Convierte tus imágenes en forma con ASCII para personalizar tus Script Python


En la publicación anterior, hablé sobre la biblioteca Art de Python, la cual convierte palabras u oraciones a ASCII. Hoy quiero compartir dos bibliotecas, con las cuales podemos crear formas con ASCII a partir de imágenes. Estas bibliotecas son PIL o PILLOW y NumPy. PILLOW , es creada para abrir, manipular y guardar archivos en formato de imagen, es de gratuita y de código abierto. NumPy, es una biblioteca poderosa para crear matrices multidimensionales y operaciones matemáticas, también es de código abierto y cuenta con una gran cantidad de colaboradores alrededor del mundo.

El flujo del script es el siguiente:

  • Se carga la imagen con la biblioteca Pillow y se redimensiona el tamaño.

  • Se transforma la imagen en un arreglo NumPy tomando cada pixel.

  • Luego los se genera la imagen ASCII a partir del arreglo NumPy anterior.

  • Se abre el ascii_logo.txt y se guarda la imagen ASCII para después abrirlo e imprimirlo en la terminal.


Fuente de la imagen

Código fuente:


from PIL import Image
import numpy as np

# Cargar imagen y convertir a escala de grises

imagen = Image.open('logo-hive.png').convert('L')
nuevo_ancho = 80  # El nuevo ancho deseado para la imagen
nuevo_alto = 35
imagen = imagen.resize((nuevo_ancho, nuevo_alto))  # Redimensionar la imagen


# Convertir imagen en arreglo numpy y normalizar valores
pixels = np.array(imagen.getdata())
pixels = (pixels - np.min(pixels)) / (np.max(pixels) - np.min(pixels))

# Generar imagen ASCII art
caracteres = np.asarray(list(' .,:;irsXA253hMHGS#9B&@'))
imagen_ascii = caracteres[(pixels * (len(caracteres) - 1)).astype(int)]
imagen_ascii = imagen_ascii.reshape(imagen.size[::-1])

# Guardar imagen ASCII art como archivo de texto
with open('ascii_logo.txt', 'w') as archivo:
archivo.write('\n'.join([''.join(fila) for fila in imagen_ascii]))


with open('ascii_logo.txt', 'r') as f:
ascii_logo = f.read()
print(ascii_logo)


Salida de ejemplo:


Estructura del proyecto

Para instalar las librerías use los siguientes comando:


Como pueden ver es muy sencillo en el script y se puede integrar a cualquier proyecto Python para ejecutar en la terminal, especialmente para aplicaciones CLI. También existe otra biblioteca que puede sustituir a Pillow, esta es Imageio. Los invito a probar ambas bibliotecas y compartir aquí sus imágenes ASCII.


Las imágenes son mías o capturas de pantalla tomadas por mí, a menos que se indiquen fuentes externas.


Discord: alberto0607#6813
Twitter: alberto_0607

H2
H3
H4
3 columns
2 columns
1 column
5 Comments
Ecency