Смещение вращения UIImage - PullRequest
       19

Смещение вращения UIImage

0 голосов
/ 18 ноября 2009

У меня есть следующий код

- (void)ComputeRotationWithRadians:(CGFloat)rad {
    CGFloat width = exportImage.size.width;
    CGFloat height = exportImage.size.height;
    UIGraphicsBeginImageContext(CGSizeMake(width, height));
    CGContextRef ctxt = UIGraphicsGetCurrentContext();
    CGContextScaleCTM(ctxt, 1.0, -1.0);
    CGContextTranslateCTM(ctxt, 0.0, -exportImage.size.height);
    CGContextRotateCTM(ctxt, rad);
    CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, width, height), exportImage.CGImage);
    exportImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    [imageView setImage:exportImage];
}

Проблема в том, что вращение происходит вокруг нижнего левого угла, когда оно рассчитано вокруг центра. Есть ли способ изменить это?

1 Ответ

1 голос
/ 18 ноября 2009

Ваш код переводит матрицу перед ее вращением. Попробуйте переключить вызовы на CGContextConcatCTM и CGContextTranslateCTM, чтобы сначала повернуть. Или, может быть, вы ищете что-то еще?

...