Sobre el proyecto

Drawlib es una biblioteca de dibujo en Python puro diseñada para lograr "Illustration as Code": se escribe código Python que define elementos de dibujo (coordenadas, tamaños, ángulos) y estilos (colores, grosores de línea, fuentes), y al ejecutar el código se genera una imagen. Separa el contenido (como HTML) del estilo (como CSS), lo que permite un estilo coherente en muchos elementos y un control de versiones sencillo de las ilustraciones junto con la documentación. Las características clave incluyen: - Elementos de dibujo: iconos (más de 1500 patrones en 5 estilos), imágenes (con efectos), líneas (múltiples estilos, incluidas curvas y Bézier), formas (alrededor de 20 patrones) y texto (varios tamaños, fuentes, grosores, compatible con los principales idiomas locales). - Una clase Style unificada para la apariencia visual y un módulo de acceso a temas/estilos (dtheme). - Configuración del lienzo: tamaño (en unidades de coordenadas), DPI para la resolución y visualización opcional de cuadrícula. - Controles de alineación (halign/valign) para una colocación precisa. - Funciones avanzadas como un resaltador de código implementado como smart art. - Una herramienta de línea de comandos (drawlib) para generar muchas imágenes, útil en canalizaciones de CI/CD. La biblioteca se inspira en funciones de Microsoft PowerPoint y pretende implementar capacidades de dibujo populares. Es especialmente adecuada para documentación técnica y libros donde las imágenes deben controlarse por versiones y generarse mediante programación. La instalación se realiza con pip (`pip install drawlib`). El inicio rápido muestra cómo importar todas las API con `from drawlib.apis import *`, configurar el lienzo con `config(width=100, height=100)`, dibujar elementos como `line()`, `circle()`, `image()`, `text()` y guardar con `save()`. La API se organiza en clases/funciones fundamentales, funciones de dibujo, clases de estilo, accesores de temas y clases avanzadas. Mantiene la coherencia en los argumentos de las funciones y las clases de estilo, lo que hace que los resultados sean predecibles una vez que se comprenden los conceptos básicos. Drawlib también proporciona una clase `Dimage` para la manipulación de imágenes (por ejemplo, espejo, sepia) y admite imágenes de Pillow. La documentación está disponible en drawlib.com/docs/.