代碼: RootViewController.m
代碼:
RootViewController.m
#import "RootViewController.h"
@interface RootViewController ()
@end
@implementation RootViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
//初始化界面
[self addView];
}
#pragma -mark -functions
//初始化界面
-(void)addView
{
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)];
imageView.backgroundColor=[UIColor redColor];
//顯示截取的圖
imageView.image=[self cutCenterImage:[UIImage imageNamed:@"1.jpg"] size:CGSizeMake(200, 200)];
[self.view addSubview:imageView];
}
#pragma mark 根據size截取圖片中間矩形區域的圖片 這裡的size是正方形
-(UIImage *)cutCenterImage:(UIImage *)image size:(CGSize)size{
CGSize imageSize = image.size;
CGRect rect;
//根據圖片的大小計算出圖片中間矩形區域的位置與大小
if (imageSize.width > imageSize.height) {
float leftMargin = (imageSize.width - imageSize.height) * 0.5;
rect = CGRectMake(leftMargin, 0, imageSize.height, imageSize.height);
}else{
float topMargin = (imageSize.height - imageSize.width) * 0.5;
rect = CGRectMake(0, topMargin, imageSize.width, imageSize.width);
}
CGImageRef imageRef = image.CGImage;
//截取中間區域矩形圖片
CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);
UIImage *tmp = [[UIImage alloc] initWithCGImage:imageRefRect];
CGImageRelease(imageRefRect);
UIGraphicsBeginImageContext(size);
CGRect rectDraw = CGRectMake(0, 0, size.width, size.height);
[tmp drawInRect:rectDraw];
// 從當前context中創建一個改變大小後的圖片
tmp = UIGraphicsGetImageFromCurrentImageContext();
// 使當前的context出堆棧
UIGraphicsEndImageContext();
return tmp;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}