文档章节

iOS截取正方形的图片

冰泪_
 冰泪_
发布于 2016/05/16 14:18
字数 215
阅读 57
收藏 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;
}

 

© 著作权归作者所有

共有 人打赏支持
冰泪_
粉丝 13
博文 80
码字总数 51923
作品 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

没有更多内容

加载失败,请刷新页面

加载更多

React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
10分钟前
0
0
sourcetree 离线免注册登录安装教程

Sourcetree是一个优秀的git可视化管理工具,深受开发者喜爱Sourcetree官网,但是在安装时需要谷歌账户登录,需要翻qiang才可以,此一点一直被人们所诟病。今天本教程就为大家提供离线免登陆安...

QQZZFT
38分钟前
1
0
使用 PostgreSQL 解决一个实际的统计分析问题

使用 PostgreSQL 解决一个实际的统计分析问题作者:老农民(刘启华)Email: 46715422@qq.com 之前有个朋友扔给我一个奇葩需求,他们公司之前做了一批问卷调查,全部都是统一格式的excel...

新疆老农民
41分钟前
5
0
TypeScript基础入门之高级类型的映射类型

转发 TypeScript基础入门之高级类型的映射类型 高级类型 映射类型 一个常见的任务是将一个已知的类型每个属性都变为可选的: interface PersonPartial {    name?: string;    age?...

durban
56分钟前
1
0
Dubbo源码分析(6):Dubbo内核实现之基于SPI思想Dubbo内核实现

SPI接口定义 定义了@SPI注解 package com.alibaba.dubbo.common.extension; import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.an......

郑加威
57分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部