zoukankan      html  css  js  c++  java
  • iOS开发之功能模块--长方形UIImage截取中间最大正方形区域

    这里直接用CoreGraphics的一些处理图片的方法,本身不难,但是有些时候用的不多,就会遗忘掉使用方法的细节。下面就直接展示关键源码,以便下次重复需求,就可以立马找回。

    该方法中在UIImage的类别拓展里:

     1 -(UIImage *)cutCenterSquareImage{
     2     
     3     CGSize imageSize = self.size;
     4     
     5     // 中间最大正方形尺寸
     6     CGRect centerRect;
     7     CGFloat centerRectWH;
     8     
     9     //根据图片的大小计算出图片中间矩形区域的位置与大小
    10     if (imageSize.width > imageSize.height) {
    11         centerRectWH = imageSize.height;
    12         float leftMargin = (imageSize.width - imageSize.height) * 0.5;
    13         centerRect = CGRectMake(leftMargin,0,centerRectWH,centerRectWH);
    14     }else{
    15         centerRectWH = imageSize.width;
    16         float topMargin = (imageSize.height - imageSize.width)*0.5;
    17         centerRect = CGRectMake(0,topMargin,centerRectWH,centerRectWH);
    18     }
    19     
    20     CGImageRef imageRef = self.CGImage;
    21     //在最大正方形尺寸范围内截取
    22     CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, centerRect);
    23     UIImage *tmp = [[UIImage alloc] initWithCGImage:imageRefRect];
    24     CGImageRelease(imageRefRect);// tmp是截取之后的image
    25     
    26     /*
    27     // 使用上下文,可以为上的tmp重新定位
    28     CGSize imageRectSize = CGSizeMake(centerRectWH, centerRectWH);
    29     CGRect imageRect = CGRectMake(0, 0, centerRectWH, centerRectWH);
    30     UIGraphicsBeginImageContext(imageRectSize);
    31     [tmp drawInRect:imageRect];
    32     // 从当前context中创建一个改变大小后的图片
    33     tmp = UIGraphicsGetImageFromCurrentImageContext();
    34     
    35     // 使当前的context出堆栈
    36     UIGraphicsEndImageContext();
    37     */
    38      
    39     return tmp;
    40 }

     百度云链接: http://pan.baidu.com/s/1dFbTN7j 密码: kkf5

  • 相关阅读:
    yii2.0安装redis
    composer
    Windows下安装redis
    Windows下启动redis闪退
    svn的使用及安装
    mysql主从
    linux下远程链接mysql报错1045
    git命令行克隆报错fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
    git克隆报错128
    yii phpexcel <转>
  • 原文地址:https://www.cnblogs.com/goodboy-heyang/p/5741799.html
Copyright © 2011-2022 走看看