核心形象:合并两个CIImage Swift

问题描述 投票:0回答:1

所以我有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

} 

misaligned image

ios swift core-image cifilter ciimage
1个回答
0
投票

问题在于随机噪声发生器,因为它的性质是从无限噪声图中裁剪出随机噪声...正确的代码补偿了这种转换:

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
}
© www.soinside.com 2019 - 2024. All rights reserved.