Cropping an UIImage

后端 未结 24 1833
轮回少年
轮回少年 2020-11-22 02:45

I\'ve got some code that resizes an image so I can get a scaled chunk of the center of the image - I use this to take a UIImage and return a small, square repre

24条回答
  •  故里飘歌
    2020-11-22 03:22

    You can make a UIImage category and use it wherever you need. Based on HitScans response and comments bellow it.

    @implementation UIImage (Crop)
    
    - (UIImage *)crop:(CGRect)rect {
    
        rect = CGRectMake(rect.origin.x*self.scale, 
                          rect.origin.y*self.scale, 
                          rect.size.width*self.scale, 
                          rect.size.height*self.scale);       
    
        CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], rect);
        UIImage *result = [UIImage imageWithCGImage:imageRef 
                                              scale:self.scale 
                                        orientation:self.imageOrientation]; 
        CGImageRelease(imageRef);
        return result;
    }
    
    @end
    

    You can use it this way:

    UIImage *imageToCrop = ;
    CGRect cropRect = ;   
    
    //for example
    //CGRectMake(0, 40, 320, 100);
    
    UIImage *croppedImage = [imageToCrop crop:cropRect];
    

提交回复
热议问题