Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Cocoa中将PDF转换为高分辨率图像的最佳方法_Cocoa_Pdf_Tiff - Fatal编程技术网

在Cocoa中将PDF转换为高分辨率图像的最佳方法

在Cocoa中将PDF转换为高分辨率图像的最佳方法,cocoa,pdf,tiff,Cocoa,Pdf,Tiff,将PDF转换为300 dpi(例如)Cocoa格式tiff的最佳方式是什么 我使用PDFImageRep创建NSImage,但我找不到放大分辨率的方法。解决方案是为图像创建图形上下文,并在该上下文中呈现PDF页面。创建上下文时,指定所需的分辨率。 此代码将执行以下操作: + (UIImage *) convertPDFPageToImage: (CGPDFPageRef) page withResolution: (float) resolution { CGRect cropBo

将PDF转换为300 dpi(例如)Cocoa格式tiff的最佳方式是什么


我使用
PDFImageRep
创建
NSImage
,但我找不到放大分辨率的方法。

解决方案是为图像创建图形上下文,并在该上下文中呈现PDF页面。创建上下文时,指定所需的分辨率。 此代码将执行以下操作:

+ (UIImage *) convertPDFPageToImage: (CGPDFPageRef) page withResolution: (float) resolution {   
    CGRect cropBox = CGPDFPageGetBoxRect(page, kCGPDFCropBox);
    int pageRotation = CGPDFPageGetRotationAngle(page);

    if ((pageRotation == 0) || (pageRotation == 180) ||(pageRotation == -180)) {
        UIGraphicsBeginImageContextWithOptions(cropBox.size, NO, resolution / 72); 
    }
    else {
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(cropBox.size.height, cropBox.size.width), NO, resolution / 72); 
    }

    CGContextRef imageContext = UIGraphicsGetCurrentContext();   

    [PDFPageRenderer renderPage:page inContext:imageContext];

    UIImage *pageImage = UIGraphicsGetImageFromCurrentImageContext();   

    UIGraphicsEndImageContext();

    return pageImage;
}

这段代码引用了Cocoa Touch的UIKit,而不是要求的Cocoa的AppKit。