ios 分片CIFilter在swift中每次返回nil

x3naxklr  于 2023-03-24  发布在  iOS
关注(0)|答案(1)|浏览(166)

我试图让一个反射瓷砖过滤器在iOS上工作,我每次都得到零。有人知道为什么会这样吗?我可以让其他CIFilter正常工作(到目前为止)。但我被困在瓷砖上。任何想法?

func tile() -> UIImage?{
    
    let context = CIContext(options: nil)
    let tile = CIFilter.fourfoldReflectedTile()
    tile.inputImage = CIImage(image: UIImage(named: "dog")!)
    tile.angle = 0
    tile.center = CGPoint(x: 20, y: 20)
    tile.width = 20
    tile.acuteAngle = 0

    if let output = tile.outputImage {
        if let cgimg = context.createCGImage(output, from: output.extent) {
            let processedImage = UIImage(cgImage: cgimg)
          return  processedImage
        }
    }
    return nil
}
osh3o9ms

osh3o9ms1#

这个滤镜返回一个无限范围的图像(它在tiles中重复图像)。当你想把outputImage再次渲染成一个图像时,你需要把outputImage裁剪到某个有限的范围:

let output = tile.outputImage?.cropped(to: <some CGRect>)

相关问题