我能够从PDF文档生成pdf缩略图图像。但问题是我在图片的顶部和底部得到white space
,而且我更改了X Y coordinate
值,但它对我没用。
而且我得到low qualit
y图像意味着这些图像效果不佳。
在iBook
中,pdf缩略图看起来太好了。所以我想生成那种缩略图。
这是代码..
-(NSMutableArray *)generateThumbnail:(NSMutableArray *)arrayDocuments
{
NSMutableArray* arrayOfImages = [[NSMutableArray alloc] init];
for (int i = 0; i < [arrayDocuments count]; i++) {
NSString* fileName = [arrayDocuments objectAtIndex:i];
NSString *filePath = [[NSBundle mainBundle]pathForResource:fileName ofType:nil];
NSURL* pdfFileUrl = [NSURL fileURLWithPath:filePath];
CGPDFDocumentRef pdf = CGPDFDocumentCreateWithURL((CFURLRef)pdfFileUrl);
CGPDFPageRef page = CGPDFDocumentGetPage(pdf, 0 + 1);
CGRect aRect =CGRectMake(0, 0, 100, 100);
UIGraphicsBeginImageContext(aRect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
UIImage* thumbnailImage;
CGContextSaveGState(context);
CGContextTranslateCTM(context, 0.0, aRect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetGrayFillColor(context, 1.0, 1.0);
CGContextFillRect(context, aRect);
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, aRect, 0, true);
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, page);
thumbnailImage = UIGraphicsGetImageFromCurrentImageContext();
[arrayOfImages addObject:thumbnailImage];
CGContextRestoreGState(context);
UIGraphicsEndImageContext();
CGPDFDocumentRelease(pdf);
}
return arrayOfImages;
}
答案 0 :(得分:0)
使用它,它将提高质量。它创建了具有屏幕/设备规模的图像,对于iPhone 5系列为2.0,对于iPhone 6加上3.0,我猜。
UIGraphicsBeginImageContextWithOptions(aRect.size,NO,[UIScreen mainScreen] .scale);
以下使用比例因子1默认为质量低的原因。
UIGraphicsBeginImageContext(aRect.size);