2013-03-05 1 views
0

Что такое эквивалент CoreGraphics для контента ContentKcaleFactor UIKit?Что такое эквивалент CoreGraphics содержимого contentScaleFactor UIKit?

Я создаю PDF, используя функции создания UKit PDF, которые позволяют визуализировать PDF-контекст. У меня есть требование, однако, чтобы DEGRADE качество созданного PDF. Мы уже достигли этого (рендеринг в UIView) с использованием свойства contentScaleFactor от UIKit, что является фактором преобразования между графическим пространством и пиксельным пространством. Тем не менее, мне нужно применить эту магиюvoodoo к CGContextRef без UIView, но я не знаю, что мне делать.

Любые другие предложения относительно того, как ухудшить качество PDF, будут высоко оценены.

Благодаря

Edit: Мой вклад является PDF документ. Я повторно создаю PDF из другого PDF-файла с использованием CoreGraphics, но процесс МОЖЕТ быть медленным, в зависимости от графической интенсивности некоторых страниц PDF.

ответ

0

При создании вам контекст, указать ширину и высоту, которые являются частью исходного PDF:

CGContextRef context = CGBitmapContextCreate(NULL, 
            pdfSize.width/4, 
            pdfSize.height/4, 
            8,      
            0, 
            colorSpace, 
            kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); 

затем сделать свой рисунок здесь масштабирование вниз по мере необходимости. Тогда вы могли бы сделать:

CGImageRef cgImage = CGBitmapContextCreateImage(ctx); 
UIImage *reflectionImage = [UIImage imageWithCGImage:cgImage scale:4.0 orientation:up]; 

или вы могли бы нарисовать cgImage изображение в новом расширенном контексте, это зависит от того, что вы пытаетесь сделать.

+0

Проблема у меня есть, я рисую PDF в другой PDF (в основном, воссоздавая его в CoreGraphics). Другими словами, PDF-файл - это мой вклад; не изображение. – micksabox

+0

Вы упомянули 'CGContext', поэтому я подумал, что вы используете' CGContextDrawPDFPage' для создания изображения с страницы pdf ... после того, как у вас есть растровое представление вашей страницы, вы можете создать новый PDF ... возможно, вы могли бы уточнить немного, что/как вы пытаетесь сделать точно – sergio