iOS__ 裁剪图片为正方形

452 阅读1分钟
  • (UIImage *)squareImageFromImage:(UIImage *)image scaledToSize:(CGFloat)newSize { CGAffineTransform scaleTransform; CGPoint origin;

    if (image.size.width > image.size.height) { CGFloat scaleRatio = newSize / image.size.height; scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio); origin = CGPointMake(-(image.size.width - image.size.height) / 2.0f, 0); } else { CGFloat scaleRatio = newSize / image.size.width; scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio);

      origin = CGPointMake(0, -(image.size.height - image.size.width) / 2.0f);
    

    }

    CGSize size = CGSizeMake(newSize, newSize); //创建画板 if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(size, YES, 0); } else { UIGraphicsBeginImageContext(size); }

    CGContextRef context = UIGraphicsGetCurrentContext(); //将image CGContextConcatCTM(context, scaleTransform); //origin [image drawAtPoint:origin];

    //获取缩放后剪切的image图片 image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image; }