所以我有2个CIImage,我想合并在一起,所以每个都有0.5的alpha。我该怎么做?
我厌倦了下面的代码,但结果图像的大小不正确,两张图片没有正确联合...请帮忙!
if let image = CIImage(contentsOf: imageURL) {
let randomFilter = CIFilter(name: "CIRandomGenerator")
let noiseImage = randomFilter!.outputImage!.cropped(to: (CGRect(x: CGFloat(Int.random(in: 1..<1000)), y: CGFloat(Int.random(in: 1..<1000)), width: image.extent.width, height: image.extent.height)))
let compoimg = noiseImage.composited(over: image) //Misaligned image
}
问题在于随机噪声发生器,因为它的性质是从无限噪声图中裁剪出随机噪声...正确的代码补偿了这种转换:
if let image = CIImage(contentsOf: imageURL) {
let randomFilter = CIFilter(name: "CIRandomGenerator")
let randX = CGFloat(Int.random(in: 0..<1000))
let randY = CGFloat(Int.random(in: 0..<1000))
let noiseImage = randomFilter!.outputImage!.cropped(to: (CGRect(x: randX, y: randY, width: image.extent.width, height: image.extent.height)))
let tt = noiseImage.transformed(by: CGAffineTransform.init(translationX: -randX, y: -randY))
let compoimg = tt.composited(over: image) //Correctly allied image
}