2016-03-25 33 views
8

Mam wiele aplikacji, które polegają na sprawdzaniu wartości rgb na podstawie stukniętych pikseli. Jeśli kliknę piksel, który zwraca 128/128/138, to otwiera to konkretną rzecz z tablicy. Z 9.3 to już nie działa, ponieważ otrzymuję zwariowane wartości kolorów.iOS 9.3 Zarządzanie kolorami/Profile

Zrobiłem trochę kopania i odkryłem, że iOS obsługuje teraz profil kolorów. Moje pliki nie mają żadnego powiązanego profilu. To wydaje się być problemem.

Każdy wyświetlacz od siatkówki 3 zwrócił nieco inne nasycenia, które musiałem dostosować. Ale to ujawnia znacznie większy problem (przynajmniej dla mnie).

Czy istnieje sposób na wyłączenie zarządzania profilami kolorów w systemie iOS 9.3? Jeśli tak, może sprawdzić, w jakim systemie działa, a następnie wyłączyć? A może dodać profil (zignorowany pod 9.3 tak dobrze), który sprawi, że będą pracować nad 9.3?

Dziękuję

Odpowiedz

2

Najprościej jest do konwersji cokolwiek rysowania na ekranie (a następnie wybierając jako piksele) do przestrzeni kolorów zwróconej przez CGColorSpaceCreateDeviceRGB(). Korzystając z tej przestrzeni kolorów, system kompozycyjny będzie wiedział, że nie będzie już więcej dokonywać konwersji danych.

Bezpośrednio z dokumentów: "Kolory w przestrzeni kolorów zależnej od urządzenia nie są przekształcane lub modyfikowane w inny sposób, gdy są wyświetlane na urządzeniu wyjściowym ...".

+0

Mówisz, że twoje pliki nie są oznaczone. W takim przypadku twoim najlepszym domysłem jako źródłową przestrzenią kolorów będzie sRGB (ale lepiej, jeśli masz oznaczone zdjęcia, możesz uzyskać o wiele lepsze wyniki). – Alex

+0

CGColorSpaceCreateDeviceRGB() powodowało zachowanie kolorów między i Air 2 i Pro, ale starsze urządzenia były inne (oczywiście). Skończyło się na sprawdzeniu zakresu + 1/-1 każdej wartości rgb, aby zwrócić mecz i wydaje się, że zrobiłem to, co było mi potrzebne. Przestrzeń kolorów nie jest teraz problemem, system operacyjny i głębia ekranu również nie stanowią problemu. – malaki1974