【问题标题】:iOS: how to crop an image to fill the shape of another image? [duplicate]iOS:如何裁剪图像以填充另一张图像的形状? [复制]
【发布时间】:2018-08-25 20:08:32
【问题描述】:

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

现在,如果我拍摄这张照片:

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

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

【问题讨论】:

  • 您要使用的蒙版实际上是圆角矩形吗?如果是这样,你根本不需要掩码,只需设置myImageView.layer.cornerRadius = ...
  • 嗨@Connor,它实际上不仅仅是一个简单的方形半径矩形(我之前也想过这个解决方案),但如果你仔细观察,这个形状更像是一个带有略微圆角的八边形。
  • 明白了。这似乎有你的答案:stackoverflow.com/questions/5757386/…
  • 是的,多亏了这个帖子,我才开始工作。谢谢!

标签: ios uikit


【解决方案1】:

按照 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 部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    相关资源
    最近更新 更多