Perché i colori di alcuni file PNG vengono distorti quando vengono aperti in Illustrator?


11

Stavo cercando di aprire uno screenshot di iPhone in Illustrator, ma per qualche ragione i colori sono distorti. Se apro lo stesso file in qualsiasi altra applicazione (Photoshop, GIMP, Anteprima, ecc.) I colori sono resi bene. La cosa curiosa è che ciò si verifica solo con alcuni screenshot, poiché ho testato anche uno screenshot della schermata principale, che Illustrator ha aperto senza distorcere i colori.

Tuttavia, con GIMP, viene visualizzata una finestra di dialogo che indica:

L'immagine 'IMG_1199.PNG' ha un profilo colore incorporato:

Visualizza P3

Convertire l'immagine nello spazio di lavoro RGB (sRGB integrato)?

Con l'opzione di mantenere o convertire il profilo colore; il che mi fa pensare che Illustrator potrebbe non riconoscere il profilo colore sopra menzionato.

Ecco l'immagine originale direttamente dal telefono [a sinistra] e l'immagine aperta (quindi salvata) da Illustrator [a destra]:

Screenshot della tastiera dell'iPhone Schermata tastiera iPhone distorta


Aggiornare

La conversione del profilo colore in GIMP, il salvataggio, quindi l'apertura di nuovo del file in Illustrator risolve il problema. Ciò sembra confermare il mio sospetto che il problema sia rappresentato dal profilo colore Display P3, che cambia in qualche modo la mia domanda: come posso aprire l'immagine in Illustrator senza prima convertirla prima?

Sembra che potrebbe essere un bug in Illustrator, quindi ho inviato una segnalazione di bug ad Adobe. Aggiornerò se il rapporto è conclusivo o se Adobe fornisce una soluzione.


1
Psichedelico! Conosco persone che mangiano pillole per vederlo. Ciao Bryan, benvenuto in GDSE e grazie per la tua domanda. Se hai domande su questo SE, dai un'occhiata al centro assistenza o sentiti libero di unirti a noi nella chat di progettazione grafica ! Continua a contribuire e goditi il ​​tuo tempo qui.
Vincent,

Ho avuto un sacco di problemi con gli screenshot di iPhone ma non ho mai avuto niente del genere. Degno di nota.
Cai,

Un profilo colore P3 implica un colore di 10 bpp (aka 30 bit)? È un bug o AI non è in grado di gestire 10bpp (ARGB 02 10 10 10)? Le menti indagatrici vogliono sapere. (modifica: per essere chiari, voglio davvero saperlo, dato che non ne ho idea)
Yorik,

Strano: sia GraphicsMagick identifyche Linux ' fileidentificano lo screenshot pubblicato a sinistra come jpg nonostante il suffisso .png. È questo lo screenshot originale / non modificato? Hai rinominato il suffisso in .png? Forse è questo il problema. Prova a cambiare il suffisso in jpg e aprilo di nuovo.
Socowi,

@Socowi Huh, è strano, l'ho provato io stesso usando il filecomando su macOS. Viene JPEG image dataanche visualizzato, anche se la finestra informativa lo mostra ancora come file PNG. Deve essere qualcosa che Imgur fa per ridimensionare le foto. Se scarichi l'immagine dal link a dimensione intera, il filecomando dovrebbe riconoscerla correttamente come file PNG.
Bryan,

Risposte:


9

Cosa probabilmente succede: lo screenshot è un png a 16 bit, ma Illustrator lo legge come un png a 8 bit, usando solo gli 8 bit inferiori (!).

Spiegazione

Per la seguente spiegazione supponiamo che lo screenshot sia un'immagine in scala di grigio a 16 bit, ovvero ogni pixel sia un numero compreso tra

nero = 0 = 0x0000 = 0b 0000 0000 0000 0000

e

(16 bit) bianco = 2 ^ 16-1 = 65535 = 0xFFFF = 0b 1111 1111 1111 1111.

(0x indica numeri esadecimali e 0b indica numeri binari)

Illustrator sembra caricare solo 8 di questi 16 bit, purtroppo quelli sbagliati, ovvero i meno significativi. La scelta dei bit meno significativi è l'unico problema.

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

Dopo l'importazione, Illustrator illustrerà in scala l'interpretazione (quale numero è bianco, che è nero) in base al nuovo numero massimo:

(8 bit) bianco = 2 ^ 8-1 = 255 = 0xFF = 0xb 1111 1111.

Supponiamo che uno dei nostri pixel abbia il valore 0b 1111 1111 0000 00001 = 0xFF01 = 65281, che è quasi bianco. Dopo l'importazione, il valore sarà 0b 0000 0001 = 0x01 = 1, che è quasi nero.

È come "arrotondare" 999.1 a 1 - completamente sbagliato!

Simulazione

Come possiamo essere sicuri che il problema descritto sia il nostro problema? Simuliamo il bug!

Il seguente programma python carica lo screenshot a 16 bit come descritto sopra.
(Per favore, non giudicarmi, è il mio primo programma 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)

Bug simulato
il risultato bug.png
Fare clic qui per le dimensioni originali e qui per confrontare con la versione di OP.

Come possiamo vedere, la nostra simulazione produce esattamente lo stesso risultato.

Soluzione

Posso solo pensare a una soluzione alternativa (dal momento che non uso Illustrator):

Converti i tuoi screenshot in png a 8 bit

GraphicsMagick e / o ImageMagick sono strumenti console che sono comodi per questo lavoro. Il seguente comando converte in png a 8 bit:

convert original.png -depth 8 converted.png

Wow, grazie per la spiegazione approfondita. Adobe non ha ancora risposto alla mia segnalazione di bug, ma con un po 'di fortuna si spera aggiungerà il supporto colore a 16 bit corretto per Illustrator. O almeno arrotondarli correttamente al colore a 8 bit.
Bryan,

1

Questo è un problema strano.

GIMP ci dà già qualche indizio, confermando il sospetto che si tratti di qualcosa con il profilo colore dello screenshot. La conversione del tuo sRGB di tutti i giorni e 8 bit per canale può evitare che Illustrator rovini le cose nel tentativo di estrarlo come CMYK.


1

Questo è MODO in ritardo, ma una semplice soluzione alternativa (per utenti Mac) consiste nell'aprire il PNG in Anteprima, quindi esportarlo come PNG commutando l'opzione predefinita a 16 bit sull'opzione a 8 bit. Non richiede alcun software aggiuntivo e richiede solo pochi secondi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.