Conversor modular de imágenes a SVG optimizado y PNG para impresión DTF.
Soporta PNG, JPG, AI y PDF con extracción automática de imágenes y eliminación inteligente de fondo.
- Convierte PNG, JPG, AI y PDF a SVG optimizado y minificado.
- Elimina el fondo automáticamente (-b true) detectando el color dominante.
- Soporte completo para:
- Archivos AI → conversión a PNG temporal mediante Inkscape.
- Archivos PDF → extracción de imagen mediante pdfimages -all.
- Limpieza de fondo ANTES de vectorizar (clave para SVG limpio).
- Optimización y minificación del SVG con scour.
- Sufijos automáticos:
- sf → sin fondo
- cf → con fondo
- Módulo adicional svg_to_png.py para generar PNG listo para DTF (600 DPI).
- Carpetas input/, output/ y temp/ ignoradas por Git.
sudo apt install inkscape
sudo apt install poppler-utils
pip install pillow
pip install cairosvg
pip install scour
Image-Converter/
│
├── convert_to_svg.py # Módulo principal: raster/AI/PDF → SVG
├── svg_to_png.py # Módulo DTF: SVG → PNG 600 DPI
│
├── input/ # Imágenes de entrada (IGNORADO por Git)
├── output/ # Resultados SVG/PNG (IGNORADO por Git)
├── temp/ # Archivos temporales (IGNORADO por Git)
│
└── README.md
python -m convert_to_svg -i input/foto.png -o output/foto -b true
python -m convert_to_svg -i input/logo.ai -o output/logo -b true
python -m convert_to_svg -i input/alien.pdf -o output/alien -b true
- -i : archivo de entrada (png, jpg, ai, pdf)
- -o : carpeta de salida
- -b : true = eliminar fondo, false = conservar fondo
- PNG/JPG → se usan directamente.
- AI → se convierte a PNG temporal con Inkscape.
- PDF → se extrae la primera imagen con pdfimages -all.
- Se analiza el borde del PNG.
- Se detecta el color dominante del fondo.
- Se elimina con tolerancia configurable.
- Se guarda el PNG limpio.
vtracer --input temp.png --output final.svg
- Se eliminan metadatos.
- Se minifica.
- Se limpian rellenos residuales.
- sf → sin fondo
- cf → con fondo
- Timestamp DDMMYYYYHHMMSS
Ejemplo: alien_sf_27122025130648.svg
Convierte un SVG optimizado a PNG 600 DPI:
python -m svg_to_png -i output/alien/alien_sf_27122025130648.svg
Opcionalmente: python -m svg_to_png -i vector.svg -o dtf -d 300
input/
output/
temp/
venv/
env/
.myenv/
*.env
*.venv
pycache/
*.py[cod]
*$py.class
*.log
*.tmp
*.swp
.DS_Store
Thumbs.db
.vscode/
.idea/
dist/
build/
- El fondo debe eliminarse antes de vectorizar, o VTracer lo convertirá en paths.
- pdfimages -all conserva los colores originales del PDF.
- La detección automática del fondo funciona con blanco, negro, gris y colores sólidos.
- Si el fondo es complejo (degradados), se puede aumentar la tolerancia.
- Generación automática del canal blanco para DTF.
- Modo espejo para impresión en rollo.
- Validación de resolución mínima.
- Procesamiento por lotes.
Proyecto desarrollado por Félix, optimizado para flujos NBES de producción real.
Estable y listo para producción.
- Construir la imagen:
docker build -t image-converter:latest .- Ejecutar (montando carpetas
inputyoutput):
docker run --rm -v "$(pwd)/input:/app/input" -v "$(pwd)/output:/app/output" image-converter:latestTambién incluimos scripts en la raíz del repositorio para facilitar el uso:
docker_build.sh: construye la imagen (image-converter:latest).docker_run_convert.sh: ejecutaconvert_to_svgdentro del contenedor pasando cualquier argumento.docker_run_svg_to_png.sh: ejecutasvg_to_pngdentro del contenedor pasando cualquier argumento.
Ejemplos:
./docker_build.sh
./docker_run_convert.sh -i input/foto.png -o output/foto -b true
./docker_run_svg_to_png.sh -i output/foto_sf.svg -o dtf -d 600Si prefiere ejecutar los binarios inkscape o pdfimages en la imagen, ya se han añadido inkscape y poppler-utils al Dockerfile.