首页 > 代码库 > iOS 图像处理-剪裁图像

iOS 图像处理-剪裁图像

解决问题:按照某一长宽比例,剪裁图片的上部和下部,保留中间的内容。当然也可以自定义需要剪裁留下的区域

前提:需要添加Framework:CoreGraphics.framework

代码:

- (UIImage*) crop:(UIImage*)theImage{
    // Get size of current image
    CGSize size = [theImage size];
    
    // Create rectangle that represents a cropped image
    CGFloat desiredRatio = 1.2;
    
    CGFloat croppedWidth = 0.0;
    CGFloat croppedHeight = 0.0;

    CGRect rect;
    
    if (size.height/size.width >= desiredRatio) {
        croppedWidth = size.width;
        croppedHeight = size.width * desiredRatio;
        CGFloat difference = (size.height-croppedHeight)/2;
        rect = CGRectMake(0.0, difference ,croppedWidth, croppedHeight);
    }
    else{
        return theImage;
    }
    
    // Create bitmap image from original image data,
    // using rectangle to specify desired crop area
    CGImageRef imageRef = CGImageCreateWithImageInRect([theImage CGImage], rect);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return croppedImage;
}

参考:网上资源,链接已丢失