1

我在下面的代码中设置输出图像的大小时遇到​​了一些问题(我发现这是另一个 StackOverflow 问题的答案)。

我需要将图像输出为小预览和高分辨率图像。但无论如何,它只能输出 596 x 842。

我尝试使用 setSize 方法更改大小,但它只更改图像的大小,在大空白区域中留下一个小图像。我无法让它正确扩展。

有人有想法吗?

NSPDFImageRep *img = [NSPDFImageRep imageRepWithContentsOfFile:pdfPath]; 
NSImage *temp = [[NSImage alloc] init]; 
NSBitmapImageRep *rep;

int count = [img pageCount]; 
for(int i = 0 ; i < count ; i++)
{ 
    [img setCurrentPage:i];
    [temp addRepresentation:img];      

    rep = [NSBitmapImageRep imageRepWithData:[temp TIFFRepresentation]];

    NSData *finalData = [rep representationUsingType:NSJPEGFileType properties:nil]; 
    NSString *pageName = [NSString stringWithFormat:@"%d.jpg", [img currentPage]]; 
    [fileManager createFileAtPath:[NSString stringWithFormat:@"%@/%@", localPath, pageName] contents:finalData attributes:nil];
}

提前致谢。

注意:这是一个 Mac OSX 应用程序。

4

1 回答 1

0

似乎 TIFFRepresentation 只会返回 72dpi 结果,这是非常低的分辨率。

我遇到了同样的问题,并通过重写函数以使用ImageIO 框架来解决它。我将 PDF 作为 CGImageSource,并将 JPG 设置为 CGImageDestination。您可以使用 CGImageProperties 来指定分辨率以及许多其他内容。

于 2013-06-13T14:08:33.787 回答