等比缩放图片裁剪指定区域图片

2016-03-25  本文已影响274人  烦人的Bug

/** *  等比缩放图片裁剪指定区域图片 * *  

@param image 原图 * 

 @param size  裁剪范围 * *

  @return 裁剪后的图片 

*/

 -(UIImage *)compressImageWith:(UIImage *)image scaleToSize:(CGSize)size { 

   // 原图宽    

 CGFloat imageWidth = image.size.width;   

 // 原图高   

 CGFloat imageHeight = image.size.height;      

  // 缩放比例  

  CGFloat widthScale = imageWidth /size.width;  

  CGFloat heightScale = imageHeight /size.height;     

   // 创建一个bitmap的context   

 // 并把它设置成为当前正在使用的context    UIGraphicsBeginImageContext(CGSizeMake(size.width, size.height));       

 // 横屏图片   

 if (widthScale > heightScale) {    

    [image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , size.height)];  

  }    else {

 // 竖屏图片  

      [image drawInRect:CGRectMake(0, 0, size.width , imageHeight /widthScale)];  

  }      

  // 从当前context中创建一个改变大小后的图片

    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();   

 // 使当前的context出堆栈   

 UIGraphicsEndImageContext();     

   return newImage;

上一篇下一篇

猜你喜欢

热点阅读