iOS:如何裁剪图像以填充另一个图像的形状?

时间:2018-03-16 17:08:13

标签: ios uikit

我想剪裁图像,使其内容填充另一个图像,并删除alpha部分。例如,我将此图像作为我期望与任何其他图像保持一致的形状:

enter image description here

现在如果我拍这张照片:

enter image description here

我想根据形状图像裁剪它以获得这个:

enter image description here

我怎样才能得到这个结果?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

在Connor建议的this thread之后,我得到了它使用这段代码:

extension UIImage {

    func maskImage(withMask maskImage: UIImage) -> UIImage {

        let maskRef = maskImage.cgImage

        let mask = CGImage(
            maskWidth: maskRef!.width,
            height: maskRef!.height,
            bitsPerComponent: maskRef!.bitsPerComponent,
            bitsPerPixel: maskRef!.bitsPerPixel,
            bytesPerRow: maskRef!.bytesPerRow,
            provider: maskRef!.dataProvider!,
            decode: nil,
            shouldInterpolate: false)

        let masked = self.cgImage!.masking(mask!)
        let maskedImage = UIImage(cgImage: masked!)

        return maskedImage
    }

}

我还必须在蒙版图像上切换白色和alpha部分。