后续加入圆角效果

-(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截取正六边形图片相关推荐

  1. 通过旋转三个div实现正六边形图片展示

    对三个矩形div进行旋转,box1>box2>box3依次嵌套,在样式中统一设置宽高,这里的宽高不是随便定义,需要计算一下,矩形的宽即是六边形的边长,知道正六边形内角是120度,那么作虚线 ...

  2. css实现图片背景填充的正六边形

    最近有个需求需要实现带有图片背景的正六边形,这里记录一下我自己实现的方法. 我项目里的最终效果大概是这样子的,这里我们只演示实现一个正六边形. 六边形的实现原理其实就是通过旋转三个重叠的矩形得到的,如 ...

  3. css 图片截取为六边形

    使用css将图片截取为六边形 参考:https://www.jianshu.com/p/df690f37197b 作者:四丶两(简书主页) 需求(要达到的效果) 解决方案 使用css3,clip-pa ...

  4. html如何将图片做成六边形,css画正六边形的两种方法

    说下两种css 制作正六边形的方法. 先看一下结果: 在之前要先了解一下正六边形内角和边的关系,正六边形的每个内角是60deg,如图(√3其实是根号3): 方法一:原理把正六边形分成三部分,左中右分别 ...

  5. iOS开发------简单实现图片多选功能(Photos.framework篇)

    Photos.framework是iOS8后苹果推出的一套替代AssetsLibrary.framework获取相册资源的原生库,至于AL库,欢迎大家给博文iOS开发--简单实现图片多选功能(Asse ...

  6. html如何将图片做成六边形,css实现六边形图片的示例代码

    本文主要介绍了css实现六边形图片的示例代码,分享给大家,具体如下: 不说别的,先上效果: 用简单的div配合伪元素,即可'画出'这幅六边形图片,原理是三个相同宽高的div,通过定位旋转拼合成一个六边 ...

  7. php 六边形 属性图 能力数值图,css怎样做出六边形图片

    这次给大家带来css怎样做出六边形图片,css做出六边形图片的注意事项有哪些,下面就是实战案例,一起来看一下. 本文主要介绍了css实现六边形图片的示例代码,分享给大家,具体如下: 不说别的,先上效果 ...

  8. Drawable的Tint变色(让Android也能有iOS那么方便的图片色调转换)

    2019独角兽企业重金招聘Python工程师标准>>> Drawable的Tint变色(让Android也能有iOS那么方便的图片色调转换) 字数590 阅读475 评论0 喜欢1 ...

  9. php ios视频文件上传,iOS实现视频和图片的上传思路

    关于iOS如何实现视频和图片的上传, 我们先理清下思路,然后小编根据思路一步一步给大家详解实现过程. 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. ...

最新文章

  1. k-d tree算法的研究
  2. 味道不错的NBearLite查询语法
  3. Linux chmod命令修改文件与文件夹权限命令代码
  4. 《研磨设计模式》chap18 状态模式state(2)模式介绍
  5. 分布式系统的面试题1
  6. 乌邦图怎么装php,Ubuntu如何安装php7?
  7. js 基础 -- 循环、函数调用 、全局和局部变量、异常捕获、事件
  8. loadrunner录制脚本为空的情况
  9. QGIS下载安装 文档
  10. yum安装软件包 conflicts between attempted installs of错误
  11. cass简码大全_考考你......列出 南方cass 简码指令50个。
  12. 推荐系统工程篇之搭建以图搜图服务
  13. [Practical.Vim(2012.9)].Drew.Neil.Tip12学习摘要
  14. 小穴位大健康——李智
  15. 儿童教育企业官网高保真Axure原型模板
  16. 如何防止ajax站外提交,ajax 防止用户反复提交的2种解决方案
  17. 基于FPGA的FIR滤波器的实现(2)—采用kaiserord fir2 firpm函数设计
  18. php印章类,印章风格类别
  19. 【JavaWeb学习报错集(一)】ReflectionException:There is no getter for property named XXX
  20. C# tcp发送十六进制数据

热门文章

  1. python 散点图 置信区间_stata如何生成带置信区间的散点图
  2. webp转换成jpg,试试看这几种简单的转换方法
  3. SharePoint Online 列表modern UI手把手教程如何使用及问题
  4. UEFI启动模式下安装win10Ubuntu 16.04双系统
  5. 2018年移动支付调研报告:扫码碾压NFC 单笔1000元以下占86%
  6. linux fstab 错误,Linux下fstab修改错误了如何修复
  7. html给单选框赋值,layui radio性别单选框赋值方法
  8. [NOIP2012]国王的游戏 题解
  9. Cauchy-Schwarz不等式、Hölder不等式与Minkowski不等式
  10. 【二十篇美文】心里的沐浴