Próbowałem otworzyć zrzut ekranu iPhone'a w programie Illustrator, ale z jakiegoś powodu kolory są zniekształcone. Jeśli otworzę ten sam plik w dowolnej innej aplikacji (Photoshop, GIMP, Preview itp.), Kolory są renderowane dobrze. Ciekawe jest to, że dzieje się tak tylko w przypadku niektórych zrzutów ekranu, ponieważ testowałem również zrzut ekranu głównego, który otworzył Illustrator bez zniekształcania kolorów.
Chociaż w GIMP pojawia się okno dialogowe z informacją:
Obraz „IMG_1199.PNG” ma i osadzony profil kolorów:
Wyświetl P3
Konwertujesz obraz do przestrzeni roboczej RGB (wbudowany sRGB)?
Z opcją zachowania lub konwersji profilu kolorów; co sprawia, że myślę, że Illustrator może nie rozpoznać wyżej wspomnianego profilu kolorów.
Oto oryginalny obraz bezpośrednio z telefonu [po lewej] i obraz został otwarty (następnie zapisany) w programie Illustrator [po prawej]:
Aktualizacja
Konwersja profilu kolorów w GIMP, zapisanie, a następnie ponowne otwarcie pliku w programie Illustrator rozwiązuje problem. To wydaje się potwierdzać moje podejrzenie, że problemem jest profil kolorów Display P3, co nieco zmienia moje pytanie: jak mogę otworzyć obraz w programie Illustrator bez uprzedniej konwersji obrazu?
Wygląda na to, że może to być błąd w programie Illustrator, dlatego przesłałem raport o błędzie do Adobe. Dokonam aktualizacji, jeśli raport będzie rozstrzygający lub jeśli Adobe dostarczy rozwiązanie.
identify
i Linux 'file
identyfikują opublikowany zrzut ekranu po lewej stronie jako plik jpg pomimo przyrostka .png. Czy to jest oryginalny / niezmodyfikowany zrzut ekranu? Czy zmieniłeś nazwę sufiksu na .png? Może to jest problem. Spróbuj zmienić sufiks na jpg i otwórz go ponownie.file
komendy na macOS. Pojawia sięJPEG image data
również, mimo że okno informacyjne nadal wyświetla go jako plik PNG. To musi być coś, co robi Imgur, aby skalować zdjęcia. Jeśli pobrać obraz z pełnym rozmiarze linkufile
polecenia powinien je rozpoznać prawidłowo jako plik PNG.Odpowiedzi:
Co prawdopodobnie się wydarzy: zrzut ekranu jest 16-bitowym png, ale ilustrator odczytuje go jako 8-bitowy png, używając tylko 8 niższych (!) Bitów.
Wyjaśnienie
W poniższym objaśnieniu zakładamy, że zrzut ekranu jest 16-bitowym obrazem w skali szarości, co oznacza, że każdy piksel jest liczbą pomiędzy
czarny = 0 = 0x0000 = 0b 0000 0000 0000 0000
i
(16-bit) biały = 2 ^ 16-1 = 65535 = 0xFFFF = 0b 1111 1111 1111 1111.
(0x oznacza liczby szesnastkowe, a 0b oznacza liczby binarne)
Program Illustrator wydaje się ładować tylko 8 z tych 16 bitów, niestety niewłaściwych, czyli najmniej znaczących. Wybór najmniej znaczących bitów jest jedynym problemem.
Po zaimportowaniu program Illustrator skaluje interpretację (która jest biała, a czarna) zgodnie z nową maksymalną liczbą:
(8-bit) biały = 2 ^ 8-1 = 255 = 0xFF = 0xb 1111 1111.
Załóżmy, że jeden z naszych pikseli miał wartość 0b 1111 1111 0000 00001 = 0xFF01 = 65281, czyli prawie biały. Po imporcie wartość będzie wynosić 0b 0000 0001 = 0x01 = 1, czyli prawie czarna.
To jak „zaokrąglanie” 999,1 do 1 - zupełnie źle!
Symulacja
Jak możemy być pewni, że opisany problem jest naszym problemem? Symulujemy błąd!
Poniższy program python ładuje 16-bitowy zrzut ekranu, jak opisano powyżej.
(Proszę nie oceniaj mnie, to mój pierwszy program w języku Python).
wynik
bug.png
Kliknij tutaj, aby zobaczyć oryginalny rozmiar, a tutaj, aby porównać z wersją OP.
Jak widzimy, nasza symulacja daje dokładnie ten sam wynik.
Obejście
Mogę wymyślić tylko jedno obejście (ponieważ nie używam ilustratora):
Konwertuj zrzuty ekranu na 8-bitowe pliki PNG
GraphicsMagick i / lub ImageMagick to narzędzia konsolowe, które są odpowiednie do tego zadania. Następujące polecenie konwertuje na 8-bitowe pngs:
źródło
To jest trochę funky problem.
GIMP już daje nam pewną wskazówkę, potwierdzając podejrzenie, że jest to coś z profilem kolorów zrzutu ekranu. Przekształcenie go w codzienne sRGB i 8 bitów na kanał może pozwolić programowi Illustrator na zepsucie się podczas próby wyciągnięcia go jako CMYK.
źródło
Jest OSTATNIE późno, ale prostym obejściem (dla użytkowników komputerów Mac) jest otwarcie PNG w podglądzie, a następnie wyeksportowanie go jako PNG, przełączając domyślną opcję 16-bitową na opcję 8-bitową. Nie wymaga żadnego dodatkowego oprogramowania i zajmuje tylko kilka sekund.
źródło