0
CIFilterのワープカーネルを構築しようとしていますが、戻ってきた画像は空です。正しいサイズの画像ですが、1色の画像です。Core Image Filterは空の画像を返します
私のフィルタは次のようになります。
class MyWarpFilter: CIFilter {
var inputImage: CIImage?
let kernel = CIWarpKernel(string: getKernelString("mirrorX"))
override var outputImage: CIImage? {
guard let inputImage = inputImage, kernel = kernel else { return nil }
let extend = inputImage.extent
let imageWidth = inputImage.extent.size.width
let arguments = [imageWidth]
return kernel.applyWithExtent(
extend,
roiCallback: {
(index, rect) in
return rect
},
inputImage: inputImage,
arguments: arguments as [AnyObject])
}
}
私のカーネルは、次のようになります。
kernel vec2 mirrorX(float imageWidth) {
vec2 input = destCoord();
return vec2(imageWidth - input.x, input.y);
}
私はreturn destCoord();
とカーネルの体を交換する場合、予想通り、私は、元の画像を取り戻します。
カーネルは2014 WWDCプレゼンテーションのものです。512:iOS向けコアイメージフィルタの開発これはうまくいくと思っています。どうやら