2015-03-02 77 views
1

我有一个问题,旋转UIImage没有质量损失。现在我正在使用BFKit提供的ready方法imageRotatedByDegrees:,但是我的图像变得分散(模糊)。旋转UIImage没有质量损失

示例代码::

- (UIImage *)imageRotatedByDegrees:(CGFloat)degrees 
{ 
    // calculate the size of the rotated view's containing box for our drawing space 
    UIView *rotatedViewBox = [[UIView alloc] initWithFrame:CGRectMake(0,0,self.size.width, self.size.height)]; 
    CGAffineTransform t = CGAffineTransformMakeRotation(DegreesToRadians(degrees)); 
    rotatedViewBox.transform = t; 
    CGSize rotatedSize = rotatedViewBox.frame.size; 

    // Create the bitmap context 
    UIGraphicsBeginImageContext(rotatedSize); 
    CGContextRef bitmap = UIGraphicsGetCurrentContext(); 

    // Move the origin to the middle of the image so we will rotate and scale around the center. 
    CGContextTranslateCTM(bitmap, rotatedSize.width/2, rotatedSize.height/2); 

    // // Rotate the image context 
    CGContextRotateCTM(bitmap, DegreesToRadians(degrees)); 

    // Now, draw the rotated/scaled image into the context 
    CGContextScaleCTM(bitmap, 1.0, -1.0); 
    CGContextDrawImage(bitmap, CGRectMake(-self.size.width/2, -self.size.height/2, self.size.width, self.size.height), [self CGImage]); 

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 

有另一种方式没有质量损失旋转的UIImage

UIImage *image = [[UIImage imageNamed:@"car"] imageRotatedByDegrees:(((float)arc4random()/ARC4RANDOM_MAX) * (360))]; 

imageRotatedByDegrees码?

回答

3

我BFKit的作者,当我读到了你的问题,我研究了有关问题。 在最新版本中(1.6.4)我修复了这个问题!

现在图像将不再被扩散(模糊)。

0

我的目标是旋转我的MKAnnotationView中的图像。所以我通过旋转不是图像解决了这个问题,而是整个MKAnnotationView。

帮助我的答案是this

我的代码在MKMapViewDelegate方法的MapView:viewForAnnotation:

annotationView.transform = CGAffineTransformMakeRotation((((float)arc4random()/ARC4RANDOM_MAX) * (360)));