iOS 裁剪图片

来源:互联网 发布:有什么sm软件 编辑:程序博客网 时间:2024/06/08 02:15
// 裁剪正方形self.photoView.contentMode = UIViewContentModeScaleAspectFill;self.photoView.clipsToBounds = YES;/* * 裁剪图片中间正方形 */- (UIImage *)clipsMaxSquareWithImage:(UIImage *)image{    CGFloat imageW = image.size.width;    CGFloat imageH = image.size.height;    CGRect clipsRect;    CGFloat margin = imageW - imageH;    if (margin > 0) {        clipsRect = CGRectMake(margin * 0.5, 0, imageH, imageH);    } else {        clipsRect = CGRectMake(0, abs(margin * 0.5), imageW, imageW);    }    CGImageRef cgRef = image.CGImage;    CGImageRef imageRef = CGImageCreateWithImageInRect(cgRef, clipsRect);    UIImage *thumbScale = [UIImage imageWithCGImage:imageRef];    CGImageRelease(imageRef);    image = thumbScale;    return image;}/* * 按比例裁剪图片 */- (void)clipsScaleWithImage:(UIImage *)image{    CGFloat imageW = image.size.width;    CGFloat imageH = image.size.height;       CGFloat scale = 8 / 6;    CGRect clipsRect;    CGFloat rate = imageW / imageH;    if (rate > scale) {        CGFloat overW = imageW - (imageH / 6) * 8;        clipsRect = CGRectMake(overW * 0.5, 0, imageW - overW, imageH);    } else {        CGFloat overH = imageH - (imageW / 6) * 8;        clipsRect = CGRectMake(0, overH * 0.5, imageW, imageH - overH);    }       CGImageRef cgRef = image.CGImage;    CGImageRef imageRef = CGImageCreateWithImageInRect(cgRef, clipsRect);    UIImage *thumbScale = [UIImage imageWithCGImage:imageRef];    CGImageRelease(imageRef);    image = thumbScale;       UIImageView *imageView = [[UIImageView alloc] initWithImage:image];    if (rate > scale) {        imageView.frame = CGRectMake(0, 0, 400, 300);    } else {        imageView.frame = CGRectMake(0, 0, 300, 400);    }    [self.view addSubview:imageView];}

0 0