IOS SWIFT создать округленное изображение профиля, как Twitter, Instagram,

Я хотел бы создать очень простой редактор изображений, такой же, как твиттер (для изображения профиля)

Я знаю, как ущипнуть или переместить изображение.

Но я не знаю, как создать "круговой слой" и просто сохранить эту часть изображения, вот так: пример из приложения Twitter

3 ответа

Вышеупомянутые способы хороши, но вы не можете добиться точного вывода, как на изображении выше. Например, вы не можете получить альфа-эффект.

Я предлагаю простой способ сделать это.

1) Добавить новое изображение в проект с прозрачным фоном с Opocity и кругом.

2) Добавьте новый imageView выше в mainview, как показано ниже.

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

Тогда вывод должен быть согласно вашему требованию.

У каждого вида есть нижележащий слой, к которому вы применяете угловой радиус. Затем вы должны применить 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

Обязательно импортируйте 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

Другие вопросы по тегам