Un contenedor Docker para convertir archivos HEIC/HEIF a formato JPEG de manera eficiente usando Node.js y Sharp.
- ✅ Conversión rápida y eficiente de HEIC/HEIF a JPEG
- 🌐 Interfaz web para conversiones interactivas
- 📁 Conversión por lotes de directorios completos
- 🎯 Control de calidad JPEG configurable
- 🐳 Completamente containerizado con Docker
- 📱 Soporte para archivos de iPhone/iPad
# Construir la imagen
docker build -t heic-converter .
# O usar docker-compose
docker-compose build# Iniciar el servidor web
docker-compose up heic-converter
# Abrir en el navegador
open http://localhost:3000# Crear directorios
mkdir -p input output
# Copiar archivos HEIC al directorio input
cp *.heic input/
# Ejecutar conversión
docker-compose run --rm heic-converter-cli
# Los archivos JPEG aparecerán en el directorio output# Convertir un archivo específico
docker run --rm \
-v $(pwd)/mi-foto.heic:/app/input.heic \
-v $(pwd):/app/output \
heic-converter \
node converter.js /app/input.heic /app/output/mi-foto.jpgdocker run --rm \
-v /ruta/a/tus/heic:/app/input \
-v /ruta/a/salida:/app/output \
-e JPEG_QUALITY=95 \
heic-converter| Variable | Descripción | Por Defecto |
|---|---|---|
INPUT_DIR |
Directorio de archivos HEIC | /app/input |
OUTPUT_DIR |
Directorio de salida JPEG | /app/output |
JPEG_QUALITY |
Calidad JPEG (1-100) | 85 |
PORT |
Puerto del servidor web | 4545 |
heic-converter/
├── Dockerfile
├── docker-compose.yml
├── package.json
├── converter.js # Lógica de conversión
├── server.js # Servidor web
├── input/ # Archivos HEIC de entrada
├── output/ # Archivos JPEG convertidos
└── README.md
# Copiar archivos HEIC
cp ~/Fotos/*.heic input/
# Convertir todos los archivos
docker-compose run --rm heic-converter-cli
# Ver resultados
ls -la output/docker run --rm \
-v $(pwd)/input:/app/input \
-v $(pwd)/output:/app/output \
-e JPEG_QUALITY=95 \
heic-converter# Iniciar en background
docker-compose up -d heic-converter
# Ver logs
docker-compose logs -f heic-converter
# Detener
docker-compose down- 60-70: Calidad baja, archivos pequeños
- 80-85: Calidad media (por defecto)
- 90-95: Alta calidad
- 95-100: Máxima calidad, archivos grandes
# Verificar que Sharp está instalado correctamente
docker run --rm heic-converter node -e "console.log(require('sharp').format)"# Dar permisos a los directorios
chmod -R 755 input outputdocker-compose logs heic-converterGET /- Interfaz webPOST /convert- Subir y convertir archivosGET /download/:file- Descargar archivos convertidos
¡Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una rama para tu feature
- Commit tus cambios
- Push a la rama
- Abre un Pull Request
MIT License - ver LICENSE file para detalles.