iOS截取正六边形图片
后续加入圆角效果
-(void)crop:(UIImage*)image{
float size=self.frame.size.width;
NSMutableArray* points=[[NSMutableArray alloc]init];
//添加正六边形的点
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2, 0)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2-sqrt(3)*size/4, size/4)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2-sqrt(3)*size/4, size*3/4)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2, size)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2+sqrt(3)*size/4, size*3/4)]];
[points addObject:[NSValue valueWithCGPoint:CGPointMake(size/2+sqrt(3)*size/4, size/4)]];
CGRect rect = CGRectZero;
rect.size = image.size;
UIGraphicsBeginImageContextWithOptions(rect.size, YES, 0.0);
{
[[UIColor blackColor] setFill];
UIRectFill(rect);
[[UIColor whiteColor] setFill];
UIBezierPath *aPath = [UIBezierPath bezierPath];
// Set the starting point of the shape.
CGPoint p1 = [self convertCGPoint:[[points objectAtIndex:0] CGPointValue] fromRect1:self.frame.size toRect2:image.size];
[aPath moveToPoint:CGPointMake(p1.x, p1.y)];
for (uint i=1; i<points.count; i++)
{
CGPoint p = [self convertCGPoint:[[points objectAtIndex:i] CGPointValue] fromRect1:self.frame.size toRect2:image.size];
[aPath addLineToPoint:CGPointMake(p.x, p.y)];
}
[aPath closePath];
[aPath fill];
}
UIImage *mask = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0);
{
CGContextClipToMask(UIGraphicsGetCurrentContext(), rect, mask.CGImage);
[image drawAtPoint:CGPointZero];
}
UIImage *maskedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[super setImage:maskedImage];
}
iOS截取正六边形图片相关推荐
- 通过旋转三个div实现正六边形图片展示
对三个矩形div进行旋转,box1>box2>box3依次嵌套,在样式中统一设置宽高,这里的宽高不是随便定义,需要计算一下,矩形的宽即是六边形的边长,知道正六边形内角是120度,那么作虚线 ...
- css实现图片背景填充的正六边形
最近有个需求需要实现带有图片背景的正六边形,这里记录一下我自己实现的方法. 我项目里的最终效果大概是这样子的,这里我们只演示实现一个正六边形. 六边形的实现原理其实就是通过旋转三个重叠的矩形得到的,如 ...
- css 图片截取为六边形
使用css将图片截取为六边形 参考:https://www.jianshu.com/p/df690f37197b 作者:四丶两(简书主页) 需求(要达到的效果) 解决方案 使用css3,clip-pa ...
- html如何将图片做成六边形,css画正六边形的两种方法
说下两种css 制作正六边形的方法. 先看一下结果: 在之前要先了解一下正六边形内角和边的关系,正六边形的每个内角是60deg,如图(√3其实是根号3): 方法一:原理把正六边形分成三部分,左中右分别 ...
- iOS开发------简单实现图片多选功能(Photos.framework篇)
Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.framework获取相册资源的原生库,至于AL库,欢迎大家给博文iOS开发--简单实现图片多选功能(Asse ...
- html如何将图片做成六边形,css实现六边形图片的示例代码
本文主要介绍了css实现六边形图片的示例代码,分享给大家,具体如下: 不说别的,先上效果: 用简单的div配合伪元素,即可'画出'这幅六边形图片,原理是三个相同宽高的div,通过定位旋转拼合成一个六边 ...
- php 六边形 属性图 能力数值图,css怎样做出六边形图片
这次给大家带来css怎样做出六边形图片,css做出六边形图片的注意事项有哪些,下面就是实战案例,一起来看一下. 本文主要介绍了css实现六边形图片的示例代码,分享给大家,具体如下: 不说别的,先上效果 ...
- Drawable的Tint变色(让Android也能有iOS那么方便的图片色调转换)
2019独角兽企业重金招聘Python工程师标准>>> Drawable的Tint变色(让Android也能有iOS那么方便的图片色调转换) 字数590 阅读475 评论0 喜欢1 ...
- php ios视频文件上传,iOS实现视频和图片的上传思路
关于iOS如何实现视频和图片的上传, 我们先理清下思路,然后小编根据思路一步一步给大家详解实现过程. 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. ...
最新文章
- k-d tree算法的研究
- 味道不错的NBearLite查询语法
- Linux chmod命令修改文件与文件夹权限命令代码
- 《研磨设计模式》chap18 状态模式state(2)模式介绍
- 分布式系统的面试题1
- 乌邦图怎么装php,Ubuntu如何安装php7?
- js 基础 -- 循环、函数调用 、全局和局部变量、异常捕获、事件
- loadrunner录制脚本为空的情况
- QGIS下载安装 文档
- yum安装软件包 conflicts between attempted installs of错误
- cass简码大全_考考你......列出 南方cass 简码指令50个。
- 推荐系统工程篇之搭建以图搜图服务
- [Practical.Vim(2012.9)].Drew.Neil.Tip12学习摘要
- 小穴位大健康——李智
- 儿童教育企业官网高保真Axure原型模板
- 如何防止ajax站外提交,ajax 防止用户反复提交的2种解决方案
- 基于FPGA的FIR滤波器的实现(2)—采用kaiserord fir2 firpm函数设计
- php印章类,印章风格类别
- 【JavaWeb学习报错集(一)】ReflectionException:There is no getter for property named XXX
- C# tcp发送十六进制数据
热门文章
- python 散点图 置信区间_stata如何生成带置信区间的散点图
- webp转换成jpg,试试看这几种简单的转换方法
- SharePoint Online 列表modern UI手把手教程如何使用及问题
- UEFI启动模式下安装win10Ubuntu 16.04双系统
- 2018年移动支付调研报告:扫码碾压NFC 单笔1000元以下占86%
- linux fstab 错误,Linux下fstab修改错误了如何修复
- html给单选框赋值,layui radio性别单选框赋值方法
- [NOIP2012]国王的游戏 题解
- Cauchy-Schwarz不等式、Hölder不等式与Minkowski不等式
- 【二十篇美文】心里的沐浴