Notas del equipo sobre el oficio, los formatos y las pequeñas decisiones detrás de un buen recorte redondo.
El contenedor sin pérdida, qué guarda el PNG
El PNG se apoya en DEFLATE, un algoritmo sin pérdida. Escribe los valores RGBA de cada píxel exactamente, hace pasar primero un filtro reversible por cada línea, y luego aprieta el conjunto con un flujo al estilo zlib. Sin pérdida aquí significa que los valores que descomprimes son los mismos que metiste, byte por byte. En el caso JPG a PNG, los valores que entran son los píxeles que el navegador devuelve tras decodificar el JPEG, y esos ya cargan cada aproximación que la codificación JPEG original introdujo. Así que el PNG anota con diligencia las aproximaciones, no la escena real que se fotografió. Medido, un JPEG de 17 KB a 1024x768 aterriza cerca de 105 KB como PNG, mientras uno de 116 KB a 3840x2160 alcanza unos 384 KB. Los múltiplos siguen la resolución más que el ajuste de calidad JPEG, y por eso se mantienen casi constantes entre contenidos. El contenedor se gana su sitio frenando el declive, no revirtiéndolo.
Por qué no se puede recuperar la calidad JPEG
El JPEG suelta información para siempre. Su compresión hace correr una transformada coseno por bloques de 8x8, redondea los coeficientes de frecuencia hacia un conjunto más tosco, y guarda esos números redondeados. Ese redondeo va en un solo sentido, así que un coeficiente que leía 47 antes de quedar enganchado a 50 nunca podrá ser empujado de vuelta, y el archivo no guarda memoria del 47. Decodificar el JPEG reconstruye píxeles a partir de los coeficientes redondeados, que son conjeturas sobre los originales. Envuelve esas conjeturas en PNG y obtienes una copia impecable de una imagen defectuosa. Nada de esto es una falla del PNG ni de Araluma, es solo cómo trabaja la compresión con pérdida, con cualquier cosa dejada caer al codificar que se queda caída. La única vía hacia una calidad JPEG mejor es volver a la fuente sin comprimir o al archivo RAW.
Crecimiento de tamaño medido
Cuánto se hincha un JPG en su camino a PNG depende de la imagen, pero la tendencia es constante. Las fotografías cargadas con cambios de tono ricos crecen más, porque ese es el material que el JPEG comprime de forma soberbia mientras el codificador sin pérdida del PNG no puede seguir el ritmo en píxeles tan ruidosos. De las pruebas propias de esta herramienta, una foto JPEG de 17 KB a 1024x768 se vuelve un PNG de 105 KB, un salto de unas seis veces, y una foto JPEG de 116 KB a 3840x2160 se vuelve un PNG de 384 KB, unas 3,3 veces más grande. El material plano como capturas e iconos le encaja mal al JPEG desde el principio y tiende a cargar más peso ahí, así que su PNG crece de forma menos brusca. La lección es clara, si lo que persigues es una salida más pequeña, volver un JPG en PNG te empuja hacia el lado equivocado.
Transparencia, la capacidad frente al contenido
El canal alfa de 8 bits del PNG es una característica del contenedor, que deja a cada píxel cargar una opacidad de 0 para del todo limpio a 255 para del todo sólido. Cuando un JPG se rehace como PNG a través del motor de imagen de la plataforma, cada píxel sale a 255, del todo opaco, porque el JPG no tenía transparencia que pasar para empezar. El PNG se queda listo para guardar datos alfa, el archivo simplemente no lleva ninguno, ya que ninguno existía en la fuente. Poner transparencia en la imagen toma una operación aparte, enmascarando el fondo a mano en un editor o lanzando una eliminación de fondo automática. Un removedor afinado para detectar el sujeto puede entregar un PNG con alfa genuino llevando la opacidad de los píxeles de fondo a cero tras la conversión.
Tratamiento de los metadatos EXIF
Cuando el archivo se rehace, sus etiquetas EXIF, IPTC y XMP caen del PNG en todos los navegadores, llevándose coordenadas GPS, el cuerpo de cámara, la fecha de la toma, el texto de copyright y cualquier XMP personalizado que el JPG guardara. Los perfiles de color divergen un poco. Chrome y Safari mantienen la etiqueta sRGB en lo que sale, mientras Firefox la deja ir con todo lo demás. Así que el PNG es seguro para sRGB dondequiera que lo abras, aunque un perfil de gama amplia como Display-P3 o Adobe RGB no sobreviva a través de Firefox. Para el uso ordinario de web y de compartir, dejar caer las etiquetas es una ventaja, aligerando un poco de peso y quitando los datos de ubicación de tus fotos. Para el trabajo profesional o de archivo que debe retener sus metadatos incrustados, gestiona esa cadena con una herramienta hecha a propósito antes o después de que conviertes.
Privacidad y dónde recae el trabajo
Dónde recae el trabajo depende de la cantidad. Con una sola imagen, nada sale del navegador, y puedes comprobarlo en vivo en segundos. Abre las DevTools de Chrome, ve al panel de Red, filtra por XHR y Fetch y convierte un archivo. No aparece nada mientras corre la codificación. Con dos o más, Araluma los envía a nuestro servidor, que convierte, junta el resultado y devuelve un enlace de descarga. Ese enlace y los archivos convertidos se eliminan en unas 2 horas. La ruta de una sola imagen mantiene todo en el dispositivo, fuera de la red, mientras que un lote lo cambia por sacar muchos archivos de una vez. Para la captura de algo privado o una foto marcada con tu ubicación, convertir de una en una lo mantiene en tu máquina, una diferencia real, no un eslogan.