美文网首页
swift - 头像图片裁切

swift - 头像图片裁切

作者: GA_ | 来源:发表于2017-03-14 15:42 被阅读149次
let image = UIImage(named: "chang.jpg")
let imageview = UIImageView(image: image?.thumbnailWithImageWithoutScale(asize: CGSize(width: 100, height: 100)))
imageview.frame = CGRect(x: 50, y: 200, width: 100, height: 100)
imageview.layer.borderWidth = 5
imageview.layer.masksToBounds = true
imageview.layer.cornerRadius = 100 / 2
self.view.addSubview(imageview)

extension UIImage {
    func thumbnailWithImageWithoutScale(asize: CGSize) -> UIImage {
        
        let newimage: UIImage
        
        let oldsize = self.size
        var rect: CGRect = CGRect()
        if asize.width/asize.height > oldsize.width/oldsize.height {
            rect.size.width = asize.height*oldsize.width/oldsize.height * 1.5;
            rect.size.height = asize.height * 1.5;
            rect.origin.x = (asize.width - rect.size.width)/2;
            rect.origin.y = 0
        } else {
            rect.size.width = asize.width;
            rect.size.height = asize.width*oldsize.height/oldsize.width;
            rect.origin.x = 0;
            rect.origin.y = (asize.height - rect.size.height)/2;
        }

        UIGraphicsBeginImageContext(asize);
        let context = UIGraphicsGetCurrentContext();
        context!.setFillColor(UIColor.clear.cgColor);
        UIRectFill(CGRect(x: 0, y: 0, width: asize.width, height: asize.height));//clear background
        self.draw(in: rect)
        
        newimage = UIGraphicsGetImageFromCurrentImageContext()!;
        UIGraphicsEndImageContext();
        return newimage;
    }
}

相关文章

网友评论

      本文标题:swift - 头像图片裁切

      本文链接:https://www.haomeiwen.com/subject/jmlhnttx.html