2013-03-05 2 views
0

Quel est l'équivalent CoreGraphics de contentScaleFactor d'UIKit?Quel est l'équivalent CoreGraphics de contentScaleFactor d'UIKit?

Je crée un PDF en utilisant les fonctions de création PDF UKit, qui permettent le rendu dans un contexte PDF. J'ai cependant l'obligation de DÉGRADER la qualité du PDF généré. Nous l'avons déjà réalisé (rendu à un UIView) en utilisant la propriété contentScaleFactor d'UIKit, qui est le facteur de conversion entre l'espace graphique et l'espace pixel. Cependant, j'ai besoin d'appliquer ce magique & vaudou à un CGContextRef, sans UIView, mais je ne sais pas ce que je devrais faire. Toute autre suggestion sur la façon de dégrader la qualité PDF serait très appréciée.

Merci

Edit: Mon entrée est un document PDF. Je recréer un PDF à partir d'un autre PDF en utilisant CoreGraphics, mais le processus peut être lent, en fonction de l'intensité graphique de certaines pages PDF.

Répondre

0

Lorsque vous vous créez le contexte, spécifier la largeur et la hauteur qui sont une fraction de votre PDF d'origine:

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

puis faites votre dessin ici mise à l'échelle vers le bas, selon le cas. Ensuite, vous pouvez faire:

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

ou vous pouvez dessiner l'image CGImage dans un nouveau contexte élargi, cela dépend de ce que vous essayez de faire.

+0

Le problème que j'ai est que je dessine un PDF dans un autre PDF (en le recréant dans CoreGraphics). Donc, en d'autres termes, un PDF est mon entrée; pas une image. – micksabox

+0

Vous avez mentionné 'CGContext', donc je pensais que vous utilisiez' CGContextDrawPDFPage' pour créer une image à partir d'une page pdf ... une fois que vous avez une représentation bitmap de votre page, vous pouvez créer un nouveau PDF ... peut-être pourriez-vous clarifier un peu quoi/comment vous essayez de faire exactement – sergio

Questions connexes