我在下面的代码中设置输出图像的大小时遇到了一些问题(我发现这是另一个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应用程序。
答案 0 :(得分:0)
好像TIFFRepresentation只会返回72dpi的结果,这是非常低的分辨率。
我遇到了同样的问题,并通过重写函数来使用ImageIO framework来解决它。我将PDF作为CGImageSource,并将JPG设置为CGImageDestination。您可以使用CGImageProperties指定分辨率以及许多其他内容。