代码改变世界

iOS 图像处理-剪裁图像

2017-05-24 09:18  tlnshuju  阅读(172)  评论(0编辑  收藏  举报

解决这个问题:依照某一长宽比例,剪裁图片的上部和下部。保留中间的内容。当然也能够自己定义须要剪裁留下的区域

前提:须要加入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;
}

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