Проблемы гаммы / цветового пространства при использовании CGContextDrawPDFPage
Я рендеринг PDF-файла на iPad с использованием основной графики.
Тем не менее цвета выглядят иначе, чем PDF при его открытии с помощью предварительного просмотра OS X или акробата.
Вот картинка с изображением левого от Acrobat, правого в симуляторе iOS:
У кого-нибудь есть идеи, что я могу делать не так? Я не делаю ничего особенного с моим графическим контекстом, кроме перевода / масштабирования, отсечения, а затем вызова CGContextDrawPDFPage
(Пока что я только попробовал на симуляторе iOS.)
2 ответа
Вам нужно использовать профиль RGB, а не профиль CMYK.
Вы можете преобразовать свой PDF с помощью кварцевого фильтра. Он интегрирует новый цветовой профиль в ваш документ, например, "Apple RGB".
Это старый поток, но проблема все еще сохраняется с iOS 9.3.2.
Исправление, которое, кажется, не является приоритетом в Apple. И я не могу их винить - у них есть большие проблемы, которые нужно решить. Мы сообщили об этой ошибке несколько лет назад и переключились на собственный движок рендеринга в коммерческом пакете PSPDFKit SDK для iOS и Android. (Отказ от ответственности: я работаю там)
Преобразование цвета - единственный известный обходной путь, но для его изменения требуется Adobe Acrobat и шаги вручную. Мы решили, что это не то, чем мы можем обременять наших клиентов, поэтому в конечном итоге мы заменили движок рендеринга Apple - полный контроль также позволил нам сделать вещи быстрее и стабильнее. У нас есть документ, который предоставляет некоторые ресурсы о том, как начать писать собственный рендер.
Пожалуйста, также сообщите о радаре на http://radar.apple.com/ - это то, что в конечном итоге должно быть исправлено, и Apple определяет приоритет запросов на основе количества запросов. Опять же, есть еще много открытых сбоев и ошибок, таких как пропущенный текст, которые у нас все еще открыты со времени, когда мы все еще использовали CGPDF
поэтому я предполагаю, что они будут иметь более высокий приоритет.
Этот документ поддержки от Adobe описывает, как вы можете преобразовать цвета: https://helpx.adobe.com/acrobat/using/color-conversion-ink-management-acrobat.html