Базовое изображение: объединить два CIImage Swift - PullRequest
0 голосов
/ 19 марта 2019

Итак, у меня есть 2 CIImage, которые я хочу слить вместе, так что каждый с альфа 0,5. Как я могу это сделать?

Я устал от следующего кода, но полученное изображение имеет неправильный размер, и эти два изображения не связаны друг с другом правильно ... Пожалуйста, помогите!

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

1 Ответ

0 голосов
/ 19 марта 2019

Проблема заключается в генераторе случайного шума, поскольку по своей природе случайный шум вырезан из карты бесконечного шума ... правильный код компенсирует этот перевод:

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
}
...