<!--
{
  "availability" : [
    "iOS: 10.0.0 -",
    "iPadOS: 10.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.12.0 -",
    "tvOS: 10.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreImage",
  "identifier" : "/documentation/CoreImage/CIImageProcessorKernel/process(with:arguments:output:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Core Image"
    ],
    "preciseIdentifier" : "c:objc(cs)CIImageProcessorKernel(cm)processWithInputs:arguments:output:error:"
  },
  "title" : "process(with:arguments:output:)"
}
-->

# process(with:arguments:output:)

Override this class method to implement your Core Image Processor Kernel subclass.

```
class func process(with inputs: [any CIImageProcessorInput]?, arguments: [String : Any]?, output: any CIImageProcessorOutput) throws
```

## Parameters

`inputs`

An array of `id<CIImageProcessorInput>` that the class consumes to produce its output.
The `input.region` may be larger than the rect returned by [`roi(forInput:arguments:outputRect:)`](/documentation/CoreImage/CIImageProcessorKernel/roi(forInput:arguments:outputRect:)).

`arguments`

the arguments dictionary that was passed to [`apply(withExtent:inputs:arguments:)`](/documentation/CoreImage/CIImageProcessorKernel/apply(withExtent:inputs:arguments:)).

`output`

The `id<CIImageProcessorOutput>` that the `CIImageProcessorKernel` must provide results to.

## Discussion

When a `CIImage` containing your `CIImageProcessorKernel` class is rendered, your class’ implementation of
this method will be called as needed for that render.  The method may be called more than once if Core Image
needs to tile to limit memory usage.

When your implementation of this class method is called, use the provided `inputs` and `arguments` objects
to return processed pixel data to Core Image via `output`.

> Important: this is a class method so that you cannot use or capture any state by accident.
> All the parameters that affect the output results must be passed to
> ``doc://com.apple.coreimage/documentation/CoreImage/CIImageProcessorKernel/apply(withExtent:inputs:arguments:)``.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)