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

www.bjxdzj.com 更新:2017-02-04 编辑:kepeer 来源:转载
本文介绍了iOS中 UIImage根据屏宽调整size的实例代码,在工作学习中经常会遇到,大家可以根据本文动手尝试一下。

mg电子:  “一切为了打仗的后勤”  2016年12月底,中原腹地,一阵阵马达轰鸣声打破冬日寂静。

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

上代码,为UIImage创建一个Category

 

 代码如下复制代码

#import"UIImage+UIImageExtras.h"

@implementationUIImage (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;

 }elseif(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");

 returnnewImage ;

}

@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;

 

没有了123 下一篇
上一页:没有了      下一页:IOS 时间和时间戳之间转化示例

相关内容

    暂无与此文章相关内容

合作: 赌球技巧 百家乐官网 mg电子