Как повернуть NSImage? - PullRequest
       12

Как повернуть NSImage?

0 голосов
/ 08 марта 2019

Этот код создает NSImage из PDF-страницы.Я хочу, чтобы все страницы отображались без поворота.Это работает нормально, если вращение = 0. Если вращение = 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);

Ответ, вероятно, довольно прост, но я не в своей компетенции.

...