2012-06-29 75 views
1

我有一些問題在下面的代碼中設置輸出圖像的大小(我發現它是另一個StackOverflow問題的答案)。提取PDF的每一頁作爲圖像:設置圖像的大小

我需要輸出圖像作爲小預覽和高分辨率圖像。但是無論如何,它只輸出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

嘗試UIImage,總是適當地縮放 – Dustin

+0

嗨!謝謝你的評論。我使用NSImage,因爲我正在爲Mac開發,而不是iOS。應該工作,雖然... 我會再嘗試一些,並讓你張貼。 –

回答

0

看起來好像TIFFRepresentation只會返回72dpi的結果,這是非常低的分辨率。

我有同樣的問題,並通過重寫函數來解決它使用ImageIO framework。我將PDF作爲CGImageSource,並將JPG設置爲CGImageDestination。您可以使用CGImageProperties來指定分辨率以及其他許多功能。