首页 > 代码库 > 画正方形image
画正方形image
/** * 剪切图片为正方形 * * @param image 原始图片比如size大小为(400x200)pixels * @param newSize 正方形的size比如400pixels * * @return 返回正方形图片(400x400)pixels */ - (UIImage *)squareImageFromImage:(UIImage *)image scaledToSize:(CGFloat)newSize { CGAffineTransform scaleTransform; CGPoint origin; if (image.size.width > image.size.height) { //image原始高度为200,缩放image的高度为400pixels,所以缩放比率为2 CGFloat scaleRatio = newSize / image.size.height; scaleTransform = CGAffineTransformMakeScale(scaleRatio, scaleRatio); //设置绘制原始图片的画笔坐标为CGPoint(-100, 0)pixels 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); //创建画板为(400x400)pixels if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(size, YES, 0); } else { UIGraphicsBeginImageContext(size); } CGContextRef context = UIGraphicsGetCurrentContext(); //将image原始图片(400x200)pixels缩放为(800x400)pixels CGContextConcatCTM(context, scaleTransform); //origin也会从原始(-100, 0)缩放到(-200, 0) [image drawAtPoint:origin]; //获取缩放后剪切的image图片 image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
画正方形image
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。