博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 按frame截取部分图像
阅读量:4701 次
发布时间:2019-06-09

本文共 1716 字,大约阅读时间需要 5 分钟。

/** * 截取部分图像 * **/+(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 viewheight = mCGRect.size.height; CGRect rect; if(centerBool) rect = CGRectMake((imgwidth-viewwidth)/2, (imgheight-viewheight)/2, viewwidth, viewheight); else{ if (viewheight < viewwidth) { if (imgwidth <= imgheight) { rect = CGRectMake(0, 0, imgwidth, imgwidth*viewheight/viewwidth); }else { float width = viewwidth*imgheight/viewheight; float x = (imgwidth - width)/2 ; if (x > 0) { rect = CGRectMake(x, 0, width, imgheight); }else { rect = CGRectMake(0, 0, imgwidth, imgwidth*viewheight/viewwidth); } } }else { if (imgwidth <= imgheight) { float height = viewheight*imgwidth/viewwidth; if (height < imgheight) { rect = CGRectMake(0, 0, imgwidth, height); }else { rect = CGRectMake(0, 0, viewwidth*imgheight/viewheight, imgheight); } }else { float width = viewwidth*imgheight/viewheight; 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; }
 

转载于:https://www.cnblogs.com/lijianfan/p/4365497.html

你可能感兴趣的文章
ASP.NET Request.Cookies获取某个Cookie的奇怪问题
查看>>
charCodeAt()的应用
查看>>
如何用javascript获取当前时间戳:
查看>>
PostGreSql安装
查看>>
idea maven 依赖报错 invalid classes root
查看>>
【剑指offer】合并两个排序的链表
查看>>
报到篇
查看>>
dubbo系列五、dubbo核心配置
查看>>
自定义ComboBox,简简单单实现
查看>>
MYSQL导入,导出命令。
查看>>
ORA-12560: TNS: 协议适配器错误
查看>>
Unsafe 学习和源码阅读
查看>>
YTU 2987: 调整表中元素顺序(线性表)
查看>>
JSP中文乱码
查看>>
Apache
查看>>
XE8 (RTM) Android SDK 更新安装
查看>>
ROS之rviz显示历史运动轨迹、路径的各种方法(visualization_msgs/Marker、nav_msgs/Path)...
查看>>
SCP-bzoj-1079
查看>>
Python 实践项目 游戏
查看>>
AJAX--Jquery
查看>>