图片的缩放和剪切

来源:互联网 发布:荷塘淘宝论坛在哪里 编辑:程序博客网 时间:2024/06/10 18:55
/********************************************************************
 文件名称 :  scaleToSize.h
 作   者     :  
 创建时间 : 2011-1-13
 文件描述 : image缩放
 版权声明 : Copyright (C) 2010-2012
 修改历史 : 2011-1-13      1.00    初始版本
 调用    :  

 *********************************************************************/

-(UIImage*)scaleToSize:(CGSize)size;

/****************************************************************************** 函数名称  : scaleToSize 函数描述  : image缩放 输入参数  :目的尺寸 输出参数  : N/A 返回值  : 缩放后的image 备注  : ******************************************************************************/-(UIImage*)scaleToSize:(CGSize)size {     // 创建一个bitmap的context     // 并把它设置成为当前正在使用的context     UIGraphicsBeginImageContext(size);     // 绘制改变大小的图片     [self drawInRect:CGRectMake(0, 0, size.width, size.height)];     // 从当前context中创建一个改变大小后的图片     UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();     // 使当前的context出堆栈     UIGraphicsEndImageContext();     // 返回新的改变大小后的图片     return scaledImage; } 

/****************************************************************************** 函数名称  : imageCut 函数描述  : image剪切逻辑 输入参数  :image:要剪切的image 放置图片的imageview或button 输出参数  : N/A 返回值  : 剪切后的image 备注  : ******************************************************************************/+(UIImage *)imageCut:(UIImage*)image view:(UIView *)view{CGRect rect;CGSize size;float scale1=image.size.width/view.frame.size.width;float scale2=image.size.height/view.frame.size.height;/****************///将image的图片按 图片与view的宽高比小的那一个size进行缩放if (scale1>=scale2) {size=CGSizeMake(1/scale2*image.size.width, view.frame.size.height);}else {size=CGSizeMake(view.frame.size.width, 1/scale1*image.size.height);}UIImage *image2=[image scaleToSize:size];/****************///对缩放后的图片进行剪切if (image2.size.width==view.frame.size.width) {rect=CGRectMake(0,(image2.size.height- view.frame.size.height)/2, view.frame.size.width, view.frame.size.height);}else {rect=CGRectMake((image2.size.width- view.frame.size.width)/2, 0,view.frame.size.width,view.frame.size.height);}return [self CuttingImageWith:rect image:image2];}/****************************************************************************** 函数名称  : CuttingImageWith 函数描述  : image剪切具体实现 输入参数  :rect:要剪切的位置 ;image:目标image 输出参数  : N/A 返回值  : 剪切后的image 备注  : ******************************************************************************/+(UIImage*)CuttingImageWith:(CGRect)rect image:(UIImage *)image{CGImageRef imageRef = image.CGImage;CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);UIImage *imageRect=[[[UIImage alloc]initWithCGImage:imageRefRect scale:1.0 orientation:image.imageOrientation]autorelease];CGImageRelease(imageRefRect);NSData *dataForPNGFile = UIImagePNGRepresentation(imageRect);UIImage *returnImage=[[[UIImage alloc]initWithData:dataForPNGFile] autorelease];return returnImage;}


0 0