美文网首页
裁剪图片,并且让裁剪出来的图片是原图的中间位置

裁剪图片,并且让裁剪出来的图片是原图的中间位置

作者: 雷霸龙 | 来源:发表于2019-08-05 22:18 被阅读0次
    // 裁剪图片,并且让裁剪出来的图片是原图的中间位置
        func cropToBounds(image: UIImage, width: Double, height: Double) -> UIImage {
            
            let cgimage = image.cgImage!
            let contextImage: UIImage = UIImage(cgImage: cgimage)
            let contextSize: CGSize = contextImage.size
            var posX: CGFloat = 0.0
            var posY: CGFloat = 0.0
            var cgwidth: CGFloat = CGFloat(width)
            var cgheight: CGFloat = CGFloat(height)
            
            // See what size is longer and create the center off of that
            if contextSize.width > contextSize.height {
                posX = ((contextSize.width - contextSize.height) / 2)
                posY = 0
                cgwidth = contextSize.height
                cgheight = contextSize.height
            } else {
                posX = 0
                posY = ((contextSize.height - contextSize.width) / 2)
                cgwidth = contextSize.width
                cgheight = contextSize.width
            }
            
            let rect: CGRect = CGRect(x: posX, y: posY, width: cgwidth, height: cgheight)
            
            // Create bitmap image from context using the rect
            let imageRef: CGImage = cgimage.cropping(to: rect)!
            
            // Create a new image based on the imageRef and rotate back to the original orientation
            let image: UIImage = UIImage(cgImage: imageRef, scale: image.scale, orientation: image.imageOrientation)
            
            return image
        }
    

    相关文章

      网友评论

          本文标题:裁剪图片,并且让裁剪出来的图片是原图的中间位置

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