---
title: "process(with:arguments:output:)"
framework: coreimage
role: symbol
role_heading: Type Method
path: "coreimage/ciimageprocessorkernel/process(with:arguments:output:)"
---

# process(with:arguments:output:)

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

## Declaration

```swift
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 doc://com.apple.coreimage/documentation/CoreImage/CIImageProcessorKernel/roi(forInput:arguments:outputRect:).
- `arguments`: The arguments dictionary that was passed to doc://com.apple.coreimage/documentation/CoreImage/CIImageProcessorKernel/apply(withExtent:inputs:arguments:).
- `output`: The id<CIImageProcessorOutput> that the CIImageProcessorKernel must provide results to.

## Discussion

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 apply(withExtent:inputs:arguments:).

## See Also

### Type Methods

- [apply(withExtent:inputs:arguments:)](coreimage/ciimageprocessorkernel/apply(withextent:inputs:arguments:).md)
- [formatForInput(at:)](coreimage/ciimageprocessorkernel/formatforinput(at:).md)
- [roi(forInput:arguments:outputRect:)](coreimage/ciimageprocessorkernel/roi(forinput:arguments:outputrect:).md)
- [roiTileArray(forInput:arguments:outputRect:)](coreimage/ciimageprocessorkernel/roitilearray(forinput:arguments:outputrect:).md)
