2012-07-23 53 views
2

我正在为iOS的缩放和裁剪图像(类似于camara应用程序)的功能工作,下面的代码工作正常,只是由此产生的图像倒过来,我想理解为什么。规模和作物图像ios

感谢

- (UIImage*)imageByCropping:(UIImageView *)imageViewToCrop toRect:(CGRect)rect 
{ 
    //create a context to do our clipping in 
    CGRect newRect = CGRectApplyAffineTransform(rect, imageViewToCrop.transform); 
    UIImage *imageToCrop = imageViewToCrop.image; 
    UIGraphicsBeginImageContext(newRect.size); 
    CGContextRef currentContext = UIGraphicsGetCurrentContext(); 

    //create a rect with the size we want to crop the image to 
    //the X and Y here are zero so we start at the beginning of our 
    //newly created context 
    CGRect clippedRect = CGRectMake(0, 0, rect.size.width, rect.size.height); 
    CGContextClipToRect(currentContext, clippedRect); 


    //draw the image to our clipped context using our offset rect 
    CGContextDrawImage(currentContext, newRect, imageToCrop.CGImage); 

    //pull the image from our cropped context 
    UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext(); 

    //pop the context to get back to the default 
    UIGraphicsEndImageContext(); 

    return cropped; 

} 

回答

0

我也遇到了这个问题,没有任何解释。但是找到了解决这个问题的解决方法。只需在你的代码中放入以下两行并再次尝试。这个对我有用。

CGContextTranslateCTM(context, 0.0, newRect.size.height); 
CGContextScaleCTM(context, 1.0, -1.0);//flip context