2012-01-26 22 views
0

回転calayeerからuiimageを取得:...は、私が以前に回転していたのCALayerからuiimage取得しようとしている

//Creates the rotation affine transform 
m_transformada = CGAffineTransformIdentity; 
m_transformada = CGAffineTransformRotate(m_transformada, M_PI/4); 
// Apply the affine transform to a UIVIewImage object 
m_PhotoView.transform = m_transformada; 

// Get's the UIImage from the UIViewImage 
UIGraphicsBeginImageContext([m_PhotoView.layer frame].size); 
[m_PhotoView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

回転しないoutputImageを誰もがなぜ知っていますか? ありがとう、

答えて

1

レイヤのトランスフォームは、レイヤ自体ではなくスーパーレイヤのジオメトリに影響します。

このような何かが動作します(これは適応におよび/またはその他の混合されることを意図し):

- (UIImage*)renderToImageRotated:(float)scale { 
    float tx = self.frame.size.width; 
    float ty = self.frame.size.height; 
    CGSize size = CGSizeMake(self.frame.size.height, self.frame.size.width); 
    UIGraphicsBeginImageContextWithOptions(size, NO, scale); 
    CGContextRef c = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM (c, ty/2, tx/2); 
    CGContextRotateCTM(c, M_PI/2); 
    CGContextTranslateCTM (c, -tx/2, -ty/2); 
    [self.layer renderInContext:c]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return image; 
} 
+0

私はできるだけ早く私はできる限りみますと、それが動作するかどうか、あなたは私の新しいヒーローになるだろう;-) – pocjoc

+0

ありがとう、ちょっとした変更を加えても機能します! – pocjoc

関連する問題