HEIC y HEIF: El Formato de Imagen de Apple Explicado
Desde que iOS 11 se lanzó en 2017, cada iPhone que dispara en modo predeterminado crea ficheros HEIC. Cientos de millones de usuarios acumulan bibliotecas de imágenes .heic — y se encuentran habitualmente con el problema de que Windows, teléfonos Android más antiguos y muchos servicios web no pueden manejarlas sin conversión. Entender qué son HEIC y HEIF, cómo funcionan y cómo convertirlos eficientemente resuelve uno de los problemas de formato más comunes en informática personal.
HEIF vs HEIC: Aclarando la Confusión
La nomenclatura es genuinamente confusa. Aquí está la distinción precisa:
| Término | Nombre completo | Significado |
|---|---|---|
| HEIF | High Efficiency Image File Format | El formato contenedor (estándar MPEG/ISO) |
| HEIC | High Efficiency Image Container | Un fichero HEIF con compresión HEVC (H.265) |
| AVIF | AV1 Image File Format | Un fichero HEIF con compresión AV1 |
.heif |
Extensión de fichero | HEIF genérico, puede usar cualquier códec |
.heic |
Extensión de fichero | Específico de Apple; siempre comprimido con HEVC |
Entonces: HEIF es la caja, HEVC es lo que Apple mete en la caja, y .heic es la etiqueta que Apple eligió.
Por Qué Existe HEIC: La Ventaja de Compresión
HEIC logra aproximadamente el doble de compresión que JPEG con calidad visual equivalente. Una foto que ocupa 3 MB como JPEG podría ser 1,4 MB como HEIC sin diferencia de calidad perceptible en una pantalla calibrada.
Capacidades adicionales que JPEG no tiene:
- Profundidad de color de 10 bits — degradados más suaves, menos bandas en cielos y tonos de piel
- Gama de color amplia (Display P3) — usada por todas las cámaras iPhone desde el iPhone 7
- HDR (Dolby Vision / HDR10) — iPhone 12+ captura fotos HDR
- Canal alfa — soporte de transparencia
- Secuencias de imágenes — Las Live Photos almacenan el fotograma fijo y el clip de 1,5 segundos en un único fichero HEIC
- Mapas de profundidad — datos de profundidad del modo Retrato incrustados en el contenedor
- Sin pérdida — HEVC soporta codificación sin pérdida para uso archivístico
Estructura del Contenedor HEIF
HEIF se basa en ISOBMFF (ISO Base Media File Format) — el mismo contenedor que usa MP4 y MOV. En lugar de ser una secuencia temporal de muestras, un fichero HEIF organiza las imágenes como elementos:
Fichero HEIC (ISOBMFF)
├── caja ftyp ← Declaración de tipo: brand = 'heic', compatible = ['mif1','hevc']
├── caja meta ← Todos los metadatos y referencias de elementos
│ ├── hdlr ← Tipo de manejador: 'pict'
│ ├── pitm ← ID del elemento primario (cuál es la imagen principal)
│ ├── iloc ← Ubicación del elemento: desplazamiento en bytes + longitud
│ ├── iinf ← Información del elemento: tipo (hvc1), tipo de contenido
│ ├── iref ← Referencias: 'auxl' (auxiliar), 'thmb' (miniatura)
│ └── iprp ← Propiedades del elemento
│ ├── ispe (dimensiones espaciales: ancho × alto)
│ ├── colr (información de color: P3/BT.2020 o perfil ICC)
│ ├── pixi (información de píxel: profundidad de bits por canal)
│ └── hvcC (registro de configuración del decodificador HEVC)
└── caja mdat ← Bitstream(s) de imagen comprimida
Compatibilidad
| Plataforma | Soporte HEIC | Notas |
|---|---|---|
| iOS 11+ | Lectura/escritura nativa | Formato de cámara predeterminado |
| macOS 10.13+ | Lectura/escritura nativa | Vista Previa, Fotos, Vista Rápida |
| Windows 10/11 | Requiere paquete de códec | "Extensiones de imagen HEIF" gratuitas en Microsoft Store |
| Android 9+ | Lectura parcial | Soporte de decodificación HEIF en la API MediaCodec |
| Chrome 85+ | Solo AVIF | HEIC no soportado nativamente |
| Firefox | Solo AVIF | HEIC bloqueado (sin licencia HEVC) |
| Safari | HEIC/HEIF completo | Nativo en macOS e iOS |
| Photoshop | Con plugin HEIF | Adobe Camera Raw 13.2+ |
Conversión con Python (pillow-heif)
from PIL import Image
import pillow_heif
# Registrar el abridor HEIF en Pillow
pillow_heif.register_heif_opener()
# Abrir y convertir HEIC a JPEG
with Image.open('foto.heic') as img:
img.convert('RGB').save('salida.jpg', 'JPEG', quality=92, optimize=True)
print(f"Tamaño: {img.size}, Modo: {img.mode}")
# Acceder a metadatos específicos de HEIF
heif_file = pillow_heif.read_heif('foto.heic')
print(f"Imágenes en el fichero: {len(heif_file)}") # >1 para Live Photos
print(f"Profundidad de bits: {heif_file.bit_depth}")
print(f"Tiene alfa: {heif_file.has_alpha}")
# Conversión por lotes preservando EXIF
from pathlib import Path
pillow_heif.register_heif_opener()
for heic_path in Path('.').glob('*.heic'):
with Image.open(heic_path) as img:
exif_data = img.info.get('exif')
salida = heic_path.with_suffix('.jpg')
kwargs = {'quality': 92}
if exif_data:
kwargs['exif'] = exif_data
img.convert('RGB').save(salida, 'JPEG', **kwargs)
print(f"Convertido: {salida}")
Conversión con FFmpeg
# Convertir HEIC a JPEG (calidad 95)
ffmpeg -i foto.heic -q:v 1 salida.jpg
# Convertir a PNG (sin pérdida)
ffmpeg -i foto.heic salida.png
# Conversión por lotes de todos los HEIC a JPEG
for f in *.heic; do
ffmpeg -i "$f" -q:v 2 "${f%.heic}.jpg"
done
Comparativa HEIC vs JPEG vs WebP vs AVIF
| Característica | JPEG | WebP | HEIC | AVIF |
|---|---|---|---|---|
| Eficiencia de compresión | Base | +30% vs JPEG | +50% vs JPEG | +50% vs JPEG |
| Profundidad de bits | 8 bits | 8/10 bits | 8/10/12 bits | 8/10/12 bits |
| Canal alfa | No | Sí | Sí | Sí |
| HDR | No | No | Sí | Sí |
| Color amplio (P3) | No | No | Sí | Sí |
| Sin pérdida | No | Sí | Sí | Sí |
| Soporte en navegadores | Universal | Universal | Solo Safari | Chrome/Firefox/Safari |
| Estado de patentes | Libre (expiradas) | Sin royalties | Royalties HEVC | Sin royalties |
| Velocidad de codificación | Rápida | Media | Lenta | Muy lenta |
Cuándo Convertir HEIC
Convierte HEIC a JPEG o PNG cuando:
- Compartes con usuarios de Windows que no tienen el paquete de códec HEVC
- Subes a servicios web o redes sociales que rechazan HEIC
- Adjuntas a correo electrónico para destinatarios en plataformas no Apple
- Publicas imágenes web (usa WebP o AVIF para mejor compatibilidad en navegadores)
Mantén HEIC cuando:
- Archivas en el ecosistema Apple (iCloud, Fotos)
- El espacio de almacenamiento es limitado y la calidad debe preservarse
- El contenido HDR se verá en dispositivos Apple
Resumen
HEIC es un formato de imagen técnicamente superior que Apple eligió por buenas razones: ficheros un 50% más pequeños con calidad equivalente, soporte HDR, color amplio y contenedores multi-imagen flexibles. La fricción de compatibilidad con plataformas no Apple es real pero va disminuyendo a medida que Windows añade soporte de códecs y Android mejora la decodificación HEIF.
Conversiones relacionadas
Lo más habitual al trabajar con imágenes son estas direcciones de conversión: