1

以下のコードで出力画像のサイズを設定する際に問題が発生しました(別のStackOverflowの質問への回答として見つかりました)。

画像を小さなプレビューと高解像度画像として出力する必要があります。しかし、何があっても、それは596x842でしか出力しません。

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];
}

前もって感謝します。

注:これはMacOSXアプリケーションです。

4

1 に答える 1

0

TIFFRepresentation は 72dpi の結果しか返さないように見えますが、これは非常に低い解像度です。

私は同じ問題を抱えていたので、関数を書き直してImageIO フレームワークを使用することで対処しました。PDF を CGImageSource として、JPG を CGImageDestination として設定しました。CGImageProperties を使用して、解像度やその他の多くのことを指定できます。

于 2013-06-13T14:08:33.787 に答える