[PyObjC] CIFilter subclass in PyObjC
In PyObjC, it turns into very convenient to create a subclass of CIFilter.
class colorMaskFilter(CIFilter): code = """ kernel vec4 maskWithColor(sampler image, sampler maskImage, __color color, float threshold) { vec4 c = sample(maskImage, samplerCoord(maskImage)); float d = distance(c, color); return (d < threshold ? sample(image, samplerCoord(image)) : vec4(0.)); }""" kernel = CIKernel.kernelsWithString_(code).objectAtIndex_(0) inputImage = None maskImage = None maskColor = None threshold = None def outputImage(self): return self.apply_arguments_options_(self.kernel, [CISampler.samplerWithImage_(self.inputImage), CISampler.samplerWithImage_(self.maskImage), self.maskColor, self.threshold], {}) # Usage: # ciImage = filter.outputImage()