我试图让一个反射瓷砖过滤器在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
}
1条答案
按热度按时间osh3o9ms1#
这个滤镜返回一个无限范围的图像(它在tiles中重复图像)。当你想把
outputImage
再次渲染成一个图像时,你需要把outputImage
裁剪到某个有限的范围: