zoukankan      html  css  js  c++  java
  • iOS | Swift图片剪切圆角

    我们在IOS开发中,时常需要将一些原本是方形的图片剪切成圆形或者边框是曲线的样子,表现得活泼生动一些.

    注意:因为最近在尝试用Swiftl开发,所以这里的语言使用的就是Swift,OC的语法也是相近的.

    这是修改之前的:

    图一

    然后这是修改之后的:

    图二

    第一种:通过图形绘制

    extension UIImage{
        
        func createImage(isCornored: Bool = true,size: CGSize = CGSize.zero,backgroundColor: UIColor = UIColor.white,callBack: @escaping (_ image: UIImage) ->()) {    
    //在子线程中执行
            DispatchQueue.global().async {
                let rect = CGRect(origin: CGPoint.zero, size: size)
                //1. 开启上下文
                UIGraphicsBeginImageContext(size)
                //2. 设置颜色
                backgroundColor.setFill()
                //3. 颜色填充
                UIRectFill(rect)
                //4. 图像绘制
                //切回角
                let path = UIBezierPath(ovalIn: rect)
                path.addClip()
                
                self.draw(in: rect)
                //5. 获取图片
                let image = UIGraphicsGetImageFromCurrentImageContext()
                //6 关闭上下文
                UIGraphicsEndImageContext()
                //回到主线程刷新UI
                DispatchQueue.main.async(execute: {
                    callBack(image!)
                })
            }
        }
    }
    

    第二种:剪切圆角

     //设置圆角半径(通过设置这个的大小,越接近你的矩形宽度,圆的形状越明显)
                iconImageView.layer.cornerRadius = 50
                //必做的一步
                iconImageView.layer.masksToBounds = true
                //设置边框宽度
                iconImageView.layer.borderWidth = 5
                //设置边框的颜色
                iconImageView.layer.borderColor = UIColor.black
    

    这两种方法都挺实用的,不过第二种比较简短,第一种适合用来提高自己的逼格吧.

  • 相关阅读:
    临时更换swap优先级
    设计一个百万级的消息推送系统----转
    使用apache cxf实现webservice服务
    如何成为一位「不那么差」的程序员---转
    轻量级web框架cicada----(转)
    shiro学习笔记
    java编程调试技巧
    zookeeper学习总结
    Kafka入门
    kafka 的经典教程
  • 原文地址:https://www.cnblogs.com/JanChuJun/p/10102287.html
Copyright © 2011-2022 走看看