Hi guys,
ok so here is what I want to do:
- Load a PDF containing a vector graphic
- Scale it up
- Draw it to a graphics context
- Create a UIImage from the result and present it
Everything works fine, except the fact that the graphic loses quality and looks pixelized :(
Here is the code where the scaling happens:
// PDF loaded before
CGPDFPageRef page = CGPDFDocumentGetPage (document, 1);
UIGraphicsBeginImageContext(CGSizeMake(width, height));
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
CGRect rect = CGPDFPageGetBoxRect(page, kCGPDFCropBox);
float widthFactor = width/ rect.size.width;
float heightFactor = height/ rect.size.height;
CGAffineTransform pdfTransform2 = CGAffineTransformMakeScale (widthFactor, heightFactor);
CGContextConcatCTM(context, pdfTransform2);
CGContextDrawPDFPage(context, page);
CGContextRestoreGState(context);
retValue = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
I think the problem is that I can only rescale the context, not the actual PDF. Is there any other way to do that without quality loss?
Thank you so much for any hint!