首页 > 系统 > iOS > 正文

iOS中 UIImage根据屏宽调整size的实例代码

2020-07-26 02:57:59
字体:
来源:转载
供稿:网友

需求:UIImage根据屏幕宽度按照自己本身比例改变高度

上代码,为UIImage创建一个Category

#import "UIImage+UIImageExtras.h" @implementation UIImage (UIImageExtras) - (UIImage *)imageByScalingToSize:(CGSize)targetSize {  UIImage *sourceImage = self;  UIImage *newImage = nil;  CGSize imageSize = sourceImage.size;  CGFloat width = imageSize.width;  CGFloat height = imageSize.height;  CGFloat targetWidth = targetSize.width;  CGFloat targetHeight = targetSize.height;  CGFloat scaleFactor = 0.0;  CGFloat scaledWidth = targetWidth;  CGFloat scaledHeight = targetHeight;  CGPoint thumbnailPoint = CGPointMake(0.0,0.0);  if (CGSizeEqualToSize(imageSize, targetSize) ==NO) {  CGFloat widthFactor = targetWidth / width;  CGFloat heightFactor = targetHeight / height;  if (widthFactor < heightFactor)   scaleFactor = widthFactor;  else   scaleFactor = heightFactor;  scaledWidth = width * scaleFactor;  scaledHeight = height * scaleFactor;  // center the image  if (widthFactor < heightFactor) {     thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;  } else if (widthFactor > heightFactor) {   thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;  }  }  // this is actually the interesting part:  UIGraphicsBeginImageContext(targetSize);  CGRect thumbnailRect = CGRectZero;  thumbnailRect.origin = thumbnailPoint;  thumbnailRect.size.width = scaledWidth;  thumbnailRect.size.height = scaledHeight;  [sourceImage drawInRect:thumbnailRect];  newImage =UIGraphicsGetImageFromCurrentImageContext();  UIGraphicsEndImageContext();  if(newImage == nil)  NSLog(@"could not scale image");  return newImage ; } @end 

在需要使用的地方import然后使用

CGSize size = image.size; image = [image imageByScalingToSize:CGSizeMake([UIScreen mainScreen].bounds.size.width,[UIScreen mainScreen].bounds.size.width * (size.height / size.width))]; self.imageview.image = image; 

以上所述是小编给大家介绍的iOS UIImage根据屏宽调整size的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表