El problema: por qué los colores se ven mal
Tomas una foto con tu iPhone. Se ve perfecta en pantalla — rojos vibrantes, verdes intensos, tonos de piel naturales. Transfieres el archivo HEIC a tu PC con Windows, lo conviertes a JPG, y algo falla. Los colores se ven deslavados, a veces sobresaturados, o la imagen entera tiene un sutil desplazamiento de color que la hace parecer "incorrecta" incluso si no puedes señalar exactamente qué cambió.
No es una pérdida de calidad por compresión. Es una discordancia de color space — uno de los problemas más comunes y menos comprendidos en la conversión HEIC a JPG. El problema tiene dos causas distintas que a menudo se combinan:
- Discordancia entre Display P3 y sRGB color space — las fotos de iPhone se capturan en un color space más amplio que el que esperan la mayoría de monitores y programas.
- Tone mapping de HDR a SDR — los iPhone modernos capturan datos HDR que deben "aplanarse" para las pantallas estándar.
Entender estos dos mecanismos es la clave para obtener colores precisos siempre.
Los color profiles explicados: Display P3 vs sRGB
Toda imagen digital contiene valores de color — números que representan la intensidad de rojo, verde y azul de cada píxel. Pero esos números no tienen sentido sin un color profile (también llamado color space) que defina cómo se ven realmente en pantalla.
Desde 2016, todos los iPhone capturan fotos en el color space Display P3. Es un estándar de gamut amplio que cubre aproximadamente un 50 % más de colores que sRGB, el color space utilizado por la mayoría de monitores Windows, navegadores web y programas.
| Propiedad | Display P3 (iPhone) | sRGB (la mayoría de monitores) |
|---|---|---|
| Cobertura de gamut | ~45,5 % del espectro visible | ~33,3 % del espectro visible |
| Rango de rojos | Rojos más profundos y saturados | Rojos estándar |
| Rango de verdes | Verdes más amplios y vivos | Verdes estándar |
| Rango de azules | Similar a sRGB | Similar a P3 |
| Usado por | iPhone, iPad, MacBook Pro, cine DCI | Windows, web, la mayoría de monitores, impresoras |
El problema ocurre durante la conversión. Cuando un archivo HEIC grabado en Display P3 se convierte a JPG, el conversor debe transformar esos valores de color P3 en valores sRGB. El gamut más amplio de P3 significa que algunos colores literalmente no existen en sRGB — deben aproximarse. Si el conversor lo hace incorrectamente (o ignora el color profile por completo), el resultado es uno de tres problemas:
- Deslavado — los valores P3 se interpretan como sRGB sin transformación. Como P3 codifica rangos más amplios, los números brutos corresponden a valores sRGB menos saturados.
- Sobresaturado — algunos conversores "estiran" los valores P3 para rellenar el gamut sRGB, empujando colores ya saturados más allá de su apariencia natural.
- Desplazamiento de color — los rojos tienden al naranja, los verdes al amarillo o los tonos de piel adquieren un tinte antinatural. Esto ocurre cuando se elimina el color profile sin conversión.
Tone mapping de HDR a SDR
A partir del iPhone 12 (2020), Apple captura fotos con metadatos HDR (concretamente Dolby Vision / Apple Gain Map). Esto añade una capa de refuerzo de brillo sobre la imagen base, lo que permite a las pantallas compatibles con HDR mostrar luces más brillantes y mayor rango dinámico que las fotos estándar.
JPG es un formato solo SDR. No conoce los datos de brillo HDR. Al convertir HEIC a JPG, la información HDR debe someterse a "tone mapping" hacia SDR — el amplio rango de brillo debe comprimirse al rango más estrecho que SDR puede representar.
Un mal tone mapping causa problemas visuales adicionales:
- Luces quemadas — las zonas brillantes (nubes, reflejos, fuentes de luz) que mostraban detalle en HDR aparecen como blanco puro en el JPG.
- Sombras planas — las zonas oscuras que tenían detalle visible en HDR se vuelven uniformemente oscuras en SDR.
- Contraste reducido — la imagen general se ve "plana" en comparación con cómo aparecía en la pantalla del iPhone, porque el rango de brillo HDR ha sido comprimido.
La combinación de la compresión de gamut P3 a sRGB y el tone mapping HDR a SDR es lo que hace que los JPG convertidos se vean notablemente diferentes de los HEIC originales — incluso cuando el conversor maneja correctamente la resolución, la nitidez y la compresión.
Cómo una conversión correcta gestiona los color profiles
Una conversión HEIC a JPG técnicamente correcta implica tres pasos que muchos conversores simples se saltan:
1. Leer el perfil ICC incrustado
Cada archivo HEIC de un iPhone contiene un color profile ICC que identifica el color space (Display P3) y proporciona los datos matemáticos de transformación. Un conversor correcto lee este perfil en lugar de asumir sRGB.
2. Transformar los colores de P3 a sRGB
Usando el perfil ICC, el conversor realiza una transformación matemática de color space que mapea cada píxel de coordenadas P3 a coordenadas sRGB. No es una fórmula simple — implica multiplicación matricial a través de un espacio de conexión independiente del dispositivo (normalmente CIE XYZ o CIE LAB).
Se usan comúnmente dos rendering intents:
- Perceptual — comprime todo el gamut proporcionalmente. Todos los colores se desplazan ligeramente para que los colores P3 fuera de gamut entren en sRGB manteniendo las relaciones relativas. Ideal para fotografías.
- Colorimétrico relativo — mantiene los colores dentro del gamut idénticos y recorta los colores fuera de gamut al límite sRGB más cercano. Conserva la precisión para la mayoría de colores, pero puede perder saturación en rojos y verdes extremos.
3. Incrustar el perfil ICC sRGB en el JPG de salida
El JPG de salida debe incluir un perfil ICC sRGB incrustado para que los visores y editores sepan cómo interpretar los valores de color. Quitar el perfil (un error común) hace que distintos programas hagan distintas suposiciones, provocando una visualización de color inconsistente.
¿Qué pasa cuando se eliminan los perfiles? Sin un perfil ICC, el software utiliza sRGB por defecto. Si los datos de píxeles ya estaban correctamente transformados a sRGB, quitar el perfil es inofensivo. Pero si los datos siguen en P3 (no se hizo transformación), los valores P3 se interpretan erróneamente como sRGB, provocando la apariencia deslavada. Esta es, con diferencia, la causa más común de problemas de color en la conversión HEIC.
Qué hace nuestro conversor
El pipeline HEIC a JPG de CleverUtils gestiona los color profiles correctamente en cada paso:
- heif-convert decodifica el archivo HEIC preservando el perfil ICC incrustado (Display P3). Los datos de píxeles en bruto y los metadatos del color space se pasan intactos a la etapa de procesamiento.
- ImageMagick realiza la conversión de color space P3 a sRGB usando la directiva
-colorspace sRGB. Lee el perfil ICC de origen, calcula la transformación a través del espacio de conexión CIE y escribe los valores de píxel sRGB correctamente mapeados. - El JPG de salida se codifica con calidad 92 y el perfil ICC sRGB incrustado, garantizando una visualización de color consistente en todos los visores, navegadores y sistemas operativos.
El resultado es un JPG que se ve como tu foto debería verse — colores naturales que coinciden con lo que viste en la pantalla de tu iPhone, correctamente adaptados para pantallas sRGB.
Consejos para obtener los mejores colores
Incluso con una gestión correcta del color profile, hay algunas cosas que puedes hacer para lograr los colores más precisos:
- Usa calidad 90 o superior — configuraciones de calidad JPG más bajas introducen artefactos de compresión que afectan la precisión del color en degradados y tonos sutiles. La calidad 92 (el valor por defecto de CleverUtils) es el punto óptimo.
- Comprueba en un monitor calibrado — la mayoría de monitores de consumo no están calibrados en color y pueden mostrar contenido sRGB con un leve tinte. Si la precisión del color importa, considera un calibrador por hardware (como Datacolor Spyder o X-Rite).
- Visualiza en varias aplicaciones — algunas aplicaciones de Windows (como el antiguo Visor de fotos de Windows) ignoran los perfiles ICC. Prueba tus JPG convertidos en Windows Photos, en un navegador (Chrome respeta los perfiles ICC) y en tu editor de fotos para confirmar la coherencia del color.
- Evita reconversiones — cada conversión con pérdida a con pérdida introduce una generación de degradación de calidad y color. Convierte una sola vez desde el HEIC original y conserva ese JPG como copia maestra.
- Conserva el HEIC original — si la máxima fidelidad de color importa (trabajo profesional, impresión), guarda el archivo HEIC como copia de archivo. Contiene el gamut P3 completo y los datos HDR que no pueden recuperarse desde un JPG.