如何旋转NSImage?

时间:2019-03-08 19:36:50

标签: pdf rotation nsimage

此代码从PDF页面创建NSImage。我希望所有页面都显示为未旋转。如果rotation = 0,它可以正常工作。如果rotation = 180,并且我未将CGContextRotateCTM设置为-rotation,则该图像上下颠倒。如果确实将CGContextRotateCTM设置为-rotation,则生成的图像为空白,而不是nil。

    CGPDFPageRef pageRef = CGPDFDocumentGetPage (myDocument, pageNumber);
    int rotation = CGPDFPageGetRotationAngle(pageRef);
    NSImage* anImage;
    @try
    {
        CGContextSaveGState(pdfContext);
        CGContextScaleCTM(pdfContext, dpi, dpi);
        CGContextRotateCTM(pdfContext, -rotation);
        CGContextDrawPDFPage(pdfContext, pageRef);
        CGImageRef ref = (CGBitmapContextCreateImage (pdfContext));
        anImage = [[NSImage alloc]initWithCGImage:ref size:NSZeroSize];
        CGContextRestoreGState(pdfContext);

答案可能很简单,但是我远远超出了我的专业知识。

0 个答案:

没有答案