繁体   English   中英

iOS快速创建舍入的个人资料图片,例如Twitter,Instagram,

[英]ios swift create rounded profile image like twitter, instagram,

我想创建一个非常简单的图像编辑器,与twitter相同(用于个人资料图像)

我知道如何捏或移动图像。

但是我不知道如何创建“圆形层”,而只保留图像的这一部分,就像这样: Twitter应用程序中的示例

确保导入QuarzCore。

func maskRoundedImage(image: UIImage, radius: CGFloat) -> UIImage {
    let imgView: UIImageView = UIImageView(image: image)
    let layer = imgView.layer
    layer.masksToBounds = true
    layer.cornerRadius = radius
    UIGraphicsBeginImageContext(imgView.bounds.size)
    layer.render(in: UIGraphicsGetCurrentContext()!)
    let roundedImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return roundedImage!
}

https://github.com/andreaantonioni/AAPhotoCircleCrop

每个视图都有一个基础层,您可以在其上应用角半径。 然后,您必须在该层上应用clipToBounds,以便将该蒙版应用于上层UIView。 拐角半径必须为视图宽度的一半,以获得圆形效果。 否则,视图的角将变为圆形。

例如:

let square = UIView()
    square.center = view.center
    square.bounds.size = CGSize(width: 100, height: 100)
    square.backgroundColor = .red
    view.addSubview(square)

    square.layer.cornerRadius = 50
    square.clipsToBounds = true

上面提到的方法是好的,但是您无法如上图所示获得精确的输出。例如,您无法获得alpha效果。

我建议这样做的简单方法。

1)将新图像添加到带有透明背景且带有浑浊和圆形的项目中。

2)如下将新的imageView添加到mainview。

let image = UIImageView(frame: view.bounds)
mage.image = UIImage.init(named:"imageName")
view.addSubview(image)

然后输出应根据您的要求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM