大佬教程收集整理的这篇文章主要介绍了ios – 制作UIImage的正方形裁剪图像以拉伸图像,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
转向:
我对比率元素进行了相当多的修改,以便能够正确地检测要修剪的数量:使用图像的较短边,构建基于short_side / width_of_desired_rect的比率,但@L_944_3@种情况下似乎不起作用.帮助赞赏!
- (UIImage *)squareImageWithImage:(UIImage *)image scaledToSize:(CGSizE)newSize { double ratio; double delta; CGPoint offset; //make a new square size,that is the resized imaged width CGSize sz = CGSizeMake(newSize.width,newSize.width); //figure out if the picture is landscape or porTrait,then //calculate scale factor and offset if (image.size.width > image.size.height) { ratio = newSize.width / image.size.width; delta = (ratio*image.size.width - ratio*image.size.height); offset = CGPointMake(delta/2,0); } else { ratio = newSize.width / image.size.height; delta = (ratio*image.size.height - ratio*image.size.width); offset = CGPointMake(0,delta/2); } //make the final clipping rect based on the calculated values CGRect clipRect = CGRectMake(-offset.x,-offset.y,(ratio * image.size.width) + delta,(ratio * image.size.height) + delta); //for reTina consideration if ([[UIScreen mainScreen] respondsToSELEctor:@SELEctor(scalE)]) { UIGraphicsBeginImageContextWithOptions(sz,YES,0.0); } else { UIGraphicsBeginImageContext(sz); } UIRectClip(clipRect); [image drawInRect:clipRect]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }
- (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,0); } else { UIGraphicsBeginImageContext(sizE); } CGContextRef context = UIGraphicsGetCurrentContext(); CGContextConcatCTM(context,scaleTransform); [image drawAtPoint:origin]; image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image; }
以上是大佬教程为你收集整理的ios – 制作UIImage的正方形裁剪图像以拉伸图像全部内容,希望文章能够帮你解决ios – 制作UIImage的正方形裁剪图像以拉伸图像所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。