用代码改变image的大小

这里大家可以写一个image的类别,方便调用,类别如下:

一、.h文件

#import <UIKit/UIKit.h>


@interface UIImage (UIImageExtras)

- (UIImage *)imageByScalingToSize:(CGSize)targetSize; 

@end


二、.m文件

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

    [sourceImagedrawInRect:thumbnailRect];

    newImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

   if(newImage == nil)

        NSLog(@"could not scale image");

   return newImage ;

}

@end

创建类别的方法:

1.command+n  --> 选择cocoa Touch里的Objective-C category --> next --> 类别选择UIImage,名字随便起,我的是UIImageExtras之后确定再把上边的代码粘贴过去即可。


调用方法:
1.在需要的地方加入头文件#import "UIImage+UIImageExtras.h" 然后

UIImage * image2 = [image1imageByScalingToSize:CGSizeMake(Width, Height)];

得到的image2的大小即所需大小。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值