How to crop the UIImage in iPhone?

前端 未结 3 1612
渐次进展
渐次进展 2020-12-17 08:23

In my application, I have set one image in UIImageView and the size of UIImageView is 320 x 170. but the size of original image is 320 x 460. so how to crop this image and d

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-17 08:39

    Here is a good way to crop an image to a CGRect:

    - (UIImage*)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
    
    {
    
       //create a context to do our clipping in
    
       UIGraphicsBeginImageContext(rect.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);
    
       //create a rect equivalent to the full size of the image
       //offset the rect by the X and Y we want to start the crop
       //from in order to cut off anything before them
    
       CGRect drawRect = CGRectMake(rect.origin.x * -1,
                                    rect.origin.y * -1,
                                    imageToCrop.size.width,
                                    imageToCrop.size.height);
    
       //draw the image to our clipped context using our offset rect
    
       CGContextDrawImage(currentContext, drawRect, imageToCrop.CGImage);
    
       //pull the image from our cropped context
    
       UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext();
    
       //pop the context to get back to the default
    
       UIGraphicsEndImageContext();
    
       //Note: this is autoreleased
    
       return cropped;
    
    }
    

    Or another way:

    - (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
     
    
    {
      CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
    
    
      UIImage *cropped = [UIImage imageWithCGImage:imageRef];
    
      CGImageRelease(imageRef);
    
    
      return cropped;
    
    
    }
    

    From http://www.hive05.com/2008/11/crop-an-image-using-the-iphone-sdk/.

提交回复
热议问题