¿Por qué los colores de ciertos archivos PNG se distorsionan cuando se abren en Illustrator?

Intentaba abrir una captura de pantalla de iPhone en Illustrator, pero por alguna razón los colores están distorsionados. Si abro el mismo archivo en cualquier otra aplicación (Photoshop, GIMP, Preview, etc.) los colores se reproducen bien. Lo curioso es que esto solo ocurre con ciertas capturas de pantalla, ya que también probé una captura de pantalla de la pantalla de inicio, que Illustrator abrió sin distorsionar los colores.

Sin embargo, con GIMP, aparece un cuadro de diálogo que dice:

La imagen 'IMG_1199.PNG' tiene un perfil de color incrustado:

Pantalla P3

¿Convertir la imagen al espacio de trabajo RGB (sRGB incorporado)?

Con la opción de mantener o convertir el perfil de color; lo que me hace pensar que Illustrator puede no reconocer el perfil de color mencionado anteriormente.

Aquí está la imagen original directamente desde el teléfono [izquierda] y la imagen abierta (luego guardada) desde Illustrator [derecha]:

Captura de pantalla del teclado del iPhone Captura de pantalla del teclado del iPhone distorsionada


Actualizar

Convertir el perfil de color en GIMP, guardar y luego abrir el archivo nuevamente en Illustrator soluciona el problema. Esto parece confirmar mi sospecha de que el problema es el perfil de color de la pantalla P3, lo que cambia un poco mi pregunta: ¿cómo puedo abrir la imagen en Illustrator sin convertirla antes?

Parece que puede ser un error en Illustrator, por lo que envié un informe de error a Adobe. Actualizaré si el informe es concluyente o si Adobe proporciona una solución.

¡Psicodélico! Conozco gente que come pastillas para ver esto. Hola Bryan, bienvenido a GDSE y gracias por tu pregunta. Si tiene alguna pregunta sobre este SE, eche un vistazo al centro de ayuda o siéntase libre de unirse a nosotros en el chat de diseño gráfico . Sigue contribuyendo y disfruta de tu tiempo aquí.
He tenido un montón de problemas con las capturas de pantalla del iPhone, pero nunca había tenido algo así. Impresionante.
¿Un perfil de color P3 implica un color de 10 bpp (también conocido como 30 bits)? ¿Es esto un error o AI simplemente no puede manejar 10bpp (ARGB 02 10 10 10)? Las mentes inquisitivas quieren saber. (editar: para ser claro, realmente quiero saber, ya que no tengo ni idea)
Extraño: tanto GraphicsMagick identifycomo Linux fileidentifican la captura de pantalla publicada a la izquierda como jpg a pesar de su sufijo .png. ¿Es esta la captura de pantalla original/sin modificar? ¿Cambió el nombre del sufijo a .png? Tal vez ese es el problema. Intente cambiar el sufijo a jpg y ábralo nuevamente.
@Socowi Huh, eso es extraño, lo probé yo mismo usando el filecomando en macOS. También aparece JPEG image data, aunque la ventana de información todavía lo muestra como un archivo PNG. Debe ser algo que Imgur hace para escalar las fotos. Si descarga la imagen desde el enlace de tamaño completo, el filecomando debería reconocerla correctamente como un archivo PNG.
@Bryan Tienes razón. imgur creó una miniatura jpg pero no cambió el sufijo. Gracias por el enlace de tamaño completo. Encontré el problema (pero no la solución) y lo publicaré pronto.
Más tarde en este hilo, pero como el problema en Illustrator sigue ahí, quería agregar esto. El problema es solo en MacOS, lo que es extraño ya que es el perfil de color de Apple iOS el que actúa. Trabajo en ambos entornos y recientemente cambié de att project en PC con PNG colocados tanto de iOS como de Android. Y cuando abrí el documento en mi Mac, todos los png de iOS estaban distorsionados. Y encontré este hilo. Volver a vincular los archivos e incluso reemplazarlos obtuvo el mismo resultado. Voy a reportar el error a Adobe.

Respuestas (4)

Lo que probablemente sucede: la captura de pantalla es un png de 16 bits, pero el ilustrador lo lee como un png de 8 bits, usando solo los 8 bits inferiores (!).

Explicación

Para la siguiente explicación, asumimos que la captura de pantalla es una imagen en escala de grises de 16 bits, es decir, cada píxel es un número entre

negro = 0 = 0x0000 = 0b 0000 0000 0000 0000

y

(16 bits) blanco = 2^16-1 = 65535 = 0xFFFF = 0b 1111 1111 1111 1111.

(0x denota números hexadecimales y 0b denota números binarios)

Illustrator parece cargar solo 8 de estos 16 bits, desafortunadamente los incorrectos, que son los menos significativos. Elegir los bits menos significativos es el único problema.

0b #### #### #### ####
   \_______/ \_______/
   discarded   loaded

Después de la importación, Illustrator escalará la interpretación (qué número es blanco, cuál es negro) de acuerdo con el nuevo número máximo:

(8 bits) blanco = 2^8-1 = 255 = 0xFF = 0xb 1111 1111.

Supongamos que uno de nuestros píxeles tenía el valor 0b 1111 1111 0000 00001 = 0xFF01 = 65281, que es casi blanco. Después de la importación, el valor será 0b 0000 0001 = 0x01 = 1, que es casi negro.

Es como "redondear" 999.1 a 1, ¡completamente incorrecto!

Simulación

¿Cómo podemos estar seguros de que el problema descrito es nuestro problema? ¡Simulamos el bicho!

El siguiente programa de python carga la captura de pantalla de 16 bits como se describe anteriormente.
(Por favor, no me juzguen, es mi primer programa en Python).

#! /usr/bin/python
import numpy as np
import cv2

# load picture
img = cv2.imread('screen.png', 3)

# assert (by hand) that picture is loaded as 16 bit image
print img.dtype

# simulate the bug
img[:,:] &= 0x00FF # use only 8 least significant bits
img[:,:] <<= 8     # rescale

# save the picture
cv2.imwrite('bug.png',img)

error simulado
el resultado bug.png
Haga clic aquí para ver el tamaño original y aquí para comparar con la versión de OP.

Como podemos ver, nuestra simulación arroja exactamente el mismo resultado.

Solución alterna

Solo puedo pensar en una solución alternativa (ya que no uso Illustrator):

Convierta sus capturas de pantalla en png de 8 bits

GraphicsMagick y/o ImageMagick son herramientas de consola que son convenientes para este trabajo. El siguiente comando convierte a pngs de 8 bits:

convert original.png -depth 8 converted.png
Wow, gracias por la explicación detallada. Adobe aún no ha respondido a mi informe de error, pero con un poco de suerte, espero que agreguen soporte de color de 16 bits adecuado a Illustrator. O al menos redondearlos a color de 8 bits correctamente.

Esto es MUY tarde, pero una solución simple (para usuarios de Mac) es abrir el PNG en Vista previa, luego exportarlo como PNG cambiando la opción predeterminada de 16 bits a la opción de 8 bits. No requiere ningún software adicional y solo toma unos segundos.

Ahora que es un tema funky.

GIMP ya nos da alguna pista, confirmando la sospecha de que se trata de algo con el perfil de color de la captura de pantalla. Convertirlo en su sRGB diario y 8 bits por canal puede evitar que Illustrator arruine las cosas al intentar sacarlo como CMYK.

convertir la imagen a .pdf me ayudó a resolver esto en una Mac