文档章节

iOS截取正方形的图片

冰泪_
 冰泪_
发布于 2016/05/16 14:18
字数 215
阅读 60
收藏 0

//截取正方形的图片 centerBool为YES  表示从中心开始截取
+(UIImage*)getSubImage:(UIImage *)image mCGRect:(CGRect)mCGRect centerBool:(BOOL)centerBool{
 /*如若centerBool为Yes则是由中心点取mCGRect范围的图片*/
 
 float imgWidth = image.size.width;
 float imgHeight = image.size.height;
 float viewWidth = mCGRect.size.width;
 float viewHidth = mCGRect.size.height;
 CGRect rect;
 if(centerBool)
     rect = CGRectMake((imgWidth-viewWidth)/2,(imgHeight-viewHidth)/2,viewWidth,viewHidth);
 else{
     if(viewHidth<viewWidth)
     {
         if(imgWidth<= imgHeight)
         {
             rect=CGRectMake(0, 0,imgWidth, imgWidth*viewHidth/viewWidth);
         }else
         {
             float width = viewWidth*imgHeight/viewHidth;
             float x = (imgWidth  - width)/2;
             if(x>0)
             {
                 rect = CGRectMake(x,0,  width, imgHeight);
             }else
             {
                 rect =  CGRectMake(0,  0,  imgWidth, imgWidth*viewHidth/viewWidth);
             }
         }
     }else
     {
         if(imgWidth <= imgHeight)
         {
             float height = viewHidth*imgWidth/viewWidth;
             if(height< imgHeight)
             {
                 rect =CGRectMake(0,  0, imgWidth, height);
             }else
             {
                 rect = CGRectMake(0,  0,viewWidth*imgHeight/viewHidth, imgHeight);
             }
         }else
         {
             float width = viewWidth*imgHeight/viewHidth;
             if(width< imgWidth)
             {
                 float x =  (imgWidth - width)/2;
                 rect =CGRectMake(x,  0,width, imgHeight);
             }else
             {
                 rect =CGRectMake(0,  0,imgWidth, imgHeight);
             }
         }
     }
 }
 
 CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage,rect);
 CGRect smallBounds =CGRectMake(0, 0,CGImageGetWidth(subImageRef),CGImageGetHeight(subImageRef));
 
 UIGraphicsBeginImageContext(smallBounds.size); CGContextRef context =UIGraphicsGetCurrentContext();CGContextDrawImage(context, smallBounds, subImageRef);
 UIImage *smallImage =[UIImage imageWithCGImage:subImageRef];
 UIGraphicsEndImageContext();
 
 return smallImage;
}

 

© 著作权归作者所有

共有 人打赏支持
冰泪_
粉丝 16
博文 83
码字总数 53258
作品 0
青浦
程序员
私信 提问
iOS 知识-常用小技巧大杂烩

打印View所有子视图 2. layoutSubviews调用的调用时机 3. NSString过滤特殊字符 4. TransForm属性 5. 去掉分割线多余15像素 6. 计算方法耗时时间间隔 7. Color颜色宏定义 8. Alert提示宏定义...

冰泪_
2016/05/26
0
0
转换 iOS 用户界面到 Android 的 5 大要诀

转换 iOS 用户界面到 Android 的 5 大要诀 2011-08-09 17:47 by 资深编辑wangguo评论(1)有1640人浏览 androidiOSUI <> 猎头职位:北京:ITeye网站诚聘产品交互设计 目前许多公司都正将他们的i...

冯京宝
2012/06/17
0
0
iOS与JS交互之UIWebView-协议拦截

级别:★★☆☆☆ 标签:「iOS与JS交互」「UIWebView与JS交互」「UIWebView拦截协议」 作者: Xs·H 审校: QiShare团队 先解释下标题:“iOS与JS交互”。iOS指原生代码(文章只有示例),J...

QiShare
08/28
0
0
iOS与JS交互之WKWebView-协议拦截

级别:★★☆☆☆ 标签:「iOS与JS交互」「WKWebView与JS交互」「WKWebView拦截协议」 作者: Xs·H 审校: QiShare团队 先解释下标题:“iOS与JS交互”。iOS指原生代码(文章只有示例),J...

QiShare
09/01
0
0
Vue开发微信H5 微信分享签名失败问题解决方案

关于Vue中路由使用history模式,开发微信H5页面分享时在安卓上签名有效成功,但是在IOS设备上一直报错签名失效问题 问题描述:在Vue开发过程中,路由使用History模式下,在使用微信分享时,在...

golddemon
08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ZooKeeper命令大全

创建节点 # 创建节点,-s表示顺序节点,-e表示临时节点,默认是持久节点create [-s] [-e] path data acl # 示例create /zk-book 123 查看节点 ls path [watch] # 示例ls /zk-book 获取...

爱宝贝丶
7分钟前
0
0
QLExpress基本语法

QLExpress基本语法 一、背景介绍 由阿里的电商业务规则、表达式(布尔组合)、特殊数学公式计算(高精度)、语法分析、脚本二次定制等强需求而设计的一门动态脚本引擎解析工具。 在阿里集团有...

xiaomin0322
7分钟前
0
0
Elasticsearch节点角色类型node.master和node.data说明s

一般地,ElasticSearch集群中每个节点都有成为主节点的资格,也都存储数据,还可以提供查询服务。这些功能是由两个属性控制的(node.master和node.data)。默认情况下这两个属性的值都是tru...

傲娇字符
22分钟前
3
0
rem的使用

(function (doc, win) { var docEl = doc.documentElement var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize' var recalc = function () { var cl......

Js_Mei
29分钟前
0
0
idea 删除代码的注释

搜索栏使用 正则表达式搜索 (/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/|[ \t]*//.*) 会搜索出来所有注释的代码 用空格replace替换掉就可以了。 或者搜索 (/\*([^*]|[\r\n]|(\*+([^*/]|[\r\...

时刻在奔跑
32分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部