Metadata-Version: 2.4
Name: vectify-simplify
Version: 1.0.5
Summary: Enterprise-grade AI image upscaling and multi-threaded vectorization engine.
Author-email: Tu Nombre <tu_correo@ejemplo.com>
Project-URL: Homepage, https://github.com/tu_usuario/vectify
Project-URL: Bug Tracker, https://github.com/tu_usuario/vectify/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: onnxruntime>=1.15.0
Dynamic: license-file

# Vectify Simplify

Vectify Simplify es una librería de Python diseñada para convertir imágenes normales (JPG, PNG) a vectores escalables (SVG) de la mejor calidad posible. Combina modelos de inteligencia artificial para mejorar la resolución y algoritmos matemáticos para trazar las curvas.

Es una herramienta potente pero fácil de usar, pensada para que no tengas que pelear con configuraciones complejas, y que respeta perfectamente las transparencias (canal Alpha).

## Instalación

Instala el paquete principal mediante pip:

```bash
pip install vectify-simplify
```

(Opcional) Para que la librería procese todo mucho más rápido usando tu tarjeta de video, instala el motor de ONNX correspondiente:
- Para tarjetas NVIDIA: `pip install onnxruntime-gpu`
- Para tarjetas Intel/AMD (en Windows): `pip install onnxruntime-directml`

## Guía de Uso y Funciones

Aquí tienes todas las herramientas que incluye el motor, explicadas paso a paso.

### 1. Vectorización Rápida (Todo en uno)
Esta es la función principal. Toma tu imagen, la escala con IA, la limpia y la vectoriza automáticamente usando un perfil predeterminado.

```python
from vectify.core import VectifyEngine

# Inicializar el motor (detecta si tienes CPU o GPU automáticamente)
engine = VectifyEngine()

# Vectorizar usando el perfil para fotografías
resultado = engine.vectorize(
    image_path="foto.png",
    output_path="resultado.svg",
    preset="photo"
)

print(f"Proceso terminado. Capas creadas: {resultado['colors_used']}")
```

### 2. Combinar Perfiles con Ajustes Manuales
Si quieres usar un perfil base pero necesitas forzar, por ejemplo, que solo use 5 colores exactos, puedes sobrescribir los valores.

```python
from vectify.core import VectifyEngine

engine = VectifyEngine()

resultado = engine.vectorize(
    image_path="logo.png",
    output_path="logo_limpio.svg",
    preset="logo",            # Usar la base del perfil logo
    max_colors=5,             # Pero obligarlo a sacar solo 5 colores
    solid_fill=True,          # Sellar cualquier hueco o porosidad
    detail_level="high"       # Mantener las esquinas afiladas
)
```

### 3. Extraer Paleta de Colores
Analiza una imagen y devuelve los colores predominantes ordenados por el porcentaje de área que ocupan en la foto.

```python
from vectify.core import VectifyEngine

engine = VectifyEngine()
paleta = engine.analyze_palette("ilustracion.png", max_colors=6)

for color in paleta:
    print(f"Color Hex: {color['hex']} - Ocupa un {color['percentage']}%")
```

### 4. Evaluar Calidad de la Imagen
Analiza qué tan borrosa está una imagen o si tiene una resolución muy baja antes de procesarla.

```python
from vectify.core import VectifyEngine

engine = VectifyEngine()
calidad = engine.evaluate_image_quality("foto.png")

print(f"Calidad general: {calidad['quality']}")
print(f"Megapíxeles: {calidad['megapixels']}")
print(f"Nivel de nitidez: {calidad['sharpness_level']}")
```

### 5. Flujo Manual (Paso a Paso)
Si quieres tener el control total, puedes usar las funciones internas del motor por separado sin usar la función vectorize.

```python
from vectify.core import VectifyEngine

engine = VectifyEngine()

# Paso 1: Aumentar la resolución x4 usando la Inteligencia Artificial pura
engine.upscale_with_ai("input.png", "paso1_ia.png")

# Paso 2: Limpiar ruido, suavizar texturas y mejorar bordes
engine.refine_image("paso1_ia.png", "paso2_limpio.png", sharpness=0.5)

# Paso 3: Vectorizar la imagen ya procesada manualmente
engine.vectorize("paso2_limpio.png", "final.svg", preset="illustration")
```

## Tabla de Parámetros

Cuando usas la función vectorize(), puedes modificar estos parámetros para alterar el resultado a tu gusto:

| Parámetro | Opciones / Tipo | Descripción |
| :--- | :--- | :--- |
| preset | "photo", "logo", "illustration" | Carga una configuración pregrabada para ese tipo de imagen. |
| max_colors | Número entero (ej. 16, 32) | Límite máximo de colores (capas SVG) a extraer. |
| detail_level | "low", "medium", "high" | Define qué tan precisas serán las curvas y bordes del vector. |
| smoothing_level | "low", "normal", "high" | Nivel de suavizado matemático de los trazos. |
| solid_fill | True, False | Trata de rellenar pequeños huecos y porosidades en la imagen. |
| max_megapixels | Número decimal (ej. 4.0) | Límite de tamaño para redimensionar la imagen y evitar que la memoria colapse. |
| colors | Lista o None | Permite pasar una lista de colores exacta si no quieres que la detecte automáticamente. |

## Licencia
Licencia MIT. Eres libre de usar, modificar y distribuir este código en proyectos personales o comerciales.
