Я пытаюсь создать уменьшенные изображения для CGPDFDocument.
В PDF документ с анализом разделе Руководства по программированию Quartz, есть следующий код:Извлечение уменьшенного изображения из CGPDFPageRef
CGPDFDictionaryRef d;
CGPDFStreamRef stream; // represents a sequence of bytes
d = CGPDFPageGetDictionary(page);
// check for thumbnail data
if (CGPDFDictionaryGetStream (d, “Thumb”, &stream)){
// get the data if it exists
data = CGPDFStreamCopyData (stream, &format);
Следующий шаг будет использовать data
для создания образа.
Сахар отвечает на подобный вопрос извлечения изображений из PDF здесь: Extracting images from a PDF
Я пытающегося использовать decodeValuesFromImageDictionary()
и getImageRef()
функции, перечисленные в своем ответе, чтобы создать UIImage представлять свою миниатюру.
Моя проблема заключается в том, что изображение я получаю имеет неправильные цвета и неправильные размеры, за исключением, когда я установил аргумент CGColorSpaceRef функции CGImageCreate()
к CGColorSpaceCreateDeviceGray()
, в этом случае я получаю (правильное) полутоновое представление эскиза, который, конечно, не то, что я хочу.
Я знаю, что проверял словарь потока миниатюр, что формат изображения - CGPDFDataFormatRaw, а ColorSpace - это DeviceRGB. Я также знаю, что к изображению применяются два фильтра (ASCII85Decode и FlateDecode), хотя я не уверен, что это имеет какое-либо значение.
Любые предложения или соображения относительно того, почему это происходит, и что делать, чтобы исправить это очень признательно!