# LispKit Image Process

Library `(lispkit image process)` defines a high-level API for all the image filters provided by the Core Image framework of iOS and macOS. As opposed to the generic, imperative interface as implemented by library `(lispkit image)`, the API of `(lispkit image process)` is functional: The main building blocks are image processors which transform abstract images. Since image processors are simply functions, they can be composed easily with existing functional composition operators, e.g. as provided by library `(lispkit combinator)`.

## Image processors

(make-filter-proc filter) [procedure]
(make-filter-proc filters)

Creates an image processor for a list of configured filters that are being applied in sequence. Creates an image processor for a given configured filter.

(filter-pipeline proc …) [procedure]

Creates an image filter pipeline from the given image processors proc …. An image filter pipeline is a composite image processor that executes the encapsulated image processors in sequence, piping the output of a processor into the input of the next processor. The result of the final processor is returned by an image filter pipeline.

## Image generator implementations

(attributed-text-image-generator text scale-factor padding) [procedure]

Returns an image generator for image filter `attributed-text-image-generator` (`CIAttributedTextImageGenerator`). Generate an image attributed string.

- text (`styled-text/NSAttributedString`): The attributed text to render.
- scale-factor (`scalar/NSNumber`): The scale of the font to use for the generated text.
- padding (`integer/NSNumber`): A value for an additional number of pixels to pad around the text’s bounding box.

Filter categories: `builtin`, `video`, `generator`, `still-image`

(aztec-code-generator message correction-level layers compact-style) [procedure]

Returns an image generator for image filter `aztec-code-generator` (`CIAztecCodeGenerator`). Generate an Aztec barcode image for message data.

- message (`bytevector/NSData`): The message to encode in the Aztec Barcode
- correction-level (`integer/NSNumber`): Aztec error correction value between 5 and 95
- layers (`integer/NSNumber`): Aztec layers value between 1 and 32. Set to nil for automatic.
- compact-style (`boolean/NSNumber`): Force a compact style Aztec code to @YES or @NO. Set to nil for automatic.

Filter categories: `builtin`, `generator`, `still-image`

(blurred-rectangle-generator extent sigma color) [procedure]

Returns an image generator for image filter `blurred-rectangle-generator` (`CIBlurredRectangleGenerator`). Generates a blurred rectangle image with the specified extent, blur sigma, and color.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- sigma (`distance/NSNumber`): The sigma for a gaussian blur.
- color (`color/CIColor`): A color.

Filter categories: `builtin`, `high-dynamic-range`, `generator`, `still-image`

(checkerboard-generator center color0 color1 width sharpness) [procedure]

Returns an image generator for image filter `checkerboard-generator` (`CICheckerboardGenerator`). Generates a pattern of squares of alternating colors. You can specify the size, colors, and the sharpness of the pattern.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- color0 (`color/CIColor`): A color to use for the first set of squares.
- color1 (`color/CIColor`): A color to use for the second set of squares.
- width (`distance/NSNumber`): The width of the squares in the pattern.
- sharpness (`scalar/NSNumber`): The sharpness of the edges in pattern. The smaller the value, the more blurry the pattern. Values range from 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(code128-barcode-generator message quiet-space barcode-height) [procedure]

Returns an image generator for image filter `code128-barcode-generator` (`CICode128BarcodeGenerator`). Generate a Code 128 barcode image for message data.

- message (`bytevector/NSData`): The message to encode in the Code 128 Barcode
- quiet-space (`integer/NSNumber`): The number of empty white pixels that should surround the barcode.
- barcode-height (`integer/NSNumber`): The height of the generated barcode in pixels.

Filter categories: `builtin`, `generator`, `still-image`

(constant-color-generator color) [procedure]

Returns an image generator for image filter `constant-color-generator` (`CIConstantColorGenerator`). Generates a solid color. You typically use the output of this filter as the input to another filter.

- color (`color/CIColor`): The color to generate.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(lenticular-halo-generator center color halo-radius halo-width halo-overlap striation-strength striation-contrast time) [procedure]

Returns an image generator for image filter `lenticular-halo-generator` (`CILenticularHaloGenerator`). Simulates a halo that is generated by the diffraction associated with the spread of a lens. This filter is typically applied to another image to simulate lens flares and similar effects.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- color (`color/CIColor`): A color.
- halo-radius (`distance/NSNumber`): The radius of the halo.
- halo-width (`distance/NSNumber`): The width of the halo, from its inner radius to its outer radius.
- halo-overlap (`scalar/NSNumber`)
- striation-strength (`scalar/NSNumber`): The intensity of the halo colors. Larger values are more intense.
- striation-contrast (`scalar/NSNumber`): The contrast of the halo colors. Larger values are higher contrast.
- time (`scalar/NSNumber`): The duration of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(mesh-generator width color mesh) [procedure]

Returns an image generator for image filter `mesh-generator` (`CIMeshGenerator`). Generates a mesh from an array of line segments.

- width (`distance/NSNumber`): The width in pixels of the effect.
- color (`color/CIColor`): A color.
- mesh (`array/NSArray`): An array of line segments stored as an array of CIVectors each containing a start point and end point.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(pdf417-barcode-generator message min-width max-width min-height max-height data-columns rows preferred-aspect-ratio compaction-mode compact-style correction-level always-specify-compaction) [procedure]

Returns an image generator for image filter `pdf417-barcode-generator` (`CIPDF417BarcodeGenerator`). Generate a PDF417 barcode image for message data.

- message (`bytevector/NSData`): The message to encode in the PDF417 Barcode
- min-width (`integer/NSNumber`): The minimum width of the generated barcode in pixels.
- max-width (`integer/NSNumber`): The maximum width of the generated barcode in pixels.
- min-height (`integer/NSNumber`): The minimum height of the generated barcode in pixels.
- max-height (`integer/NSNumber`): The maximum height of the generated barcode in pixels.
- data-columns (`integer/NSNumber`): The number of data columns in the generated barcode
- rows (`integer/NSNumber`): The number of rows in the generated barcode
- preferred-aspect-ratio (`number/NSNumber`): The preferred aspect ratio of the generated barcode
- compaction-mode (`integer/NSNumber`): The compaction mode of the generated barcode.
- compact-style (`boolean/NSNumber`): Force a compact style Aztec code to @YES or @NO. Set to nil for automatic.
- correction-level (`integer/NSNumber`): The correction level ratio of the generated barcode
- always-specify-compaction (`boolean/NSNumber`): Force compaction style to @YES or @NO. Set to nil for automatic.

Filter categories: `builtin`, `video`, `generator`, `still-image`

(qrcode-generator message correction-level) [procedure]

Returns an image generator for image filter `qrcode-generator` (`CIQRCodeGenerator`). Generate a QR Code image for message data.

- message (`bytevector/NSData`): The message to encode in the QR Code
- correction-level (`string/NSString`): QR Code correction level L, M, Q, or H.

Filter categories: `builtin`, `generator`, `still-image`

(random-generator)

Returns an image generator for image filter `random-generator` (`CIRandomGenerator`). Generates an image of infinite extent whose pixel values are made up of four independent, uniformly-distributed random numbers in the 0 to 1 range.

Filter categories: `builtin`, `video`, `generator`, `still-image`

(rounded-rectangle-generator extent radius color) [procedure]

Returns an image generator for image filter `rounded-rectangle-generator` (`CIRoundedRectangleGenerator`). Generates a rounded rectangle image with the specified extent, corner radius, and color.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- radius (`distance/NSNumber`): The distance from the center of the effect.
- color (`color/CIColor`): A color.

Filter categories: `builtin`, `high-dynamic-range`, `generator`, `still-image`

(rounded-rectangle-stroke-generator extent radius color width) [procedure]

Returns an image generator for image filter `rounded-rectangle-stroke-generator` (`CIRoundedRectangleStrokeGenerator`). Generates a rounded rectangle stroke image with the specified extent, corner radius, stroke width, and color.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- radius (`distance/NSNumber`): The distance from the center of the effect.
- color (`color/CIColor`): A color.
- width (`distance/NSNumber`): The width in pixels of the effect.

Filter categories: `builtin`, `high-dynamic-range`, `generator`, `still-image`

(star-shine-generator center color radius cross-scale cross-angle cross-opacity cross-width epsilon) [procedure]

Returns an image generator for image filter `star-shine-generator` (`CIStarShineGenerator`). Generates a starburst pattern. The output image is typically used as input to another filter.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- color (`color/CIColor`): The color to use for the outer shell of the circular star.
- radius (`distance/NSNumber`): The radius of the star.
- cross-scale (`scalar/NSNumber`): The size of the cross pattern.
- cross-angle (`angle/NSNumber`): The angle in radians of the cross pattern.
- cross-opacity (`scalar/NSNumber`): The opacity of the cross pattern.
- cross-width (`distance/NSNumber`): The width of the cross pattern.
- epsilon (`scalar/NSNumber`): The length of the cross spikes.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(stripes-generator center color0 color1 width sharpness) [procedure]

Returns an image generator for image filter `stripes-generator` (`CIStripesGenerator`). Generates a stripe pattern. You can control the color of the stripes, the spacing, and the contrast.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- color0 (`color/CIColor`): A color to use for the odd stripes.
- color1 (`color/CIColor`): A color to use for the even stripes.
- width (`distance/NSNumber`): The width of a stripe.
- sharpness (`scalar/NSNumber`): The sharpness of the stripe pattern. The smaller the value, the more blurry the pattern. Values range from 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(sunbeams-generator center color sun-radius max-striation-radius striation-strength striation-contrast time) [procedure]

Returns an image generator for image filter `sunbeams-generator` (`CISunbeamsGenerator`). Generates a sun effect. You typically use the output of the sunbeams filter as input to a composite filter.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- color (`color/CIColor`): The color of the sun.
- sun-radius (`distance/NSNumber`): The radius of the sun.
- max-striation-radius (`scalar/NSNumber`): The radius of the sunbeams.
- striation-strength (`scalar/NSNumber`): The intensity of the sunbeams. Higher values result in more intensity.
- striation-contrast (`scalar/NSNumber`): The contrast of the sunbeams. Higher values result in more contrast.
- time (`scalar/NSNumber`): The duration of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `generator`, `still-image`

(text-image-generator text font-name font-size scale-factor padding) [procedure]

Returns an image generator for image filter `text-image-generator` (`CITextImageGenerator`). Generate an image from a string and font information.

- text (`string/NSString`): The text to render.
- font-name (`string/NSString`): The name of the font to use for the generated text.
- font-size (`scalar/NSNumber`): The size of the font to use for the generated text.
- scale-factor (`scalar/NSNumber`): The scale of the font to use for the generated text.
- padding (`integer/NSNumber`): The number of additional pixels to pad around the text’s bounding box.

Filter categories: `builtin`, `video`, `generator`, `still-image`

## Image processor implementations

(accordion-fold-transition target-image bottom-height number-of-folds fold-shadow-amount time) [procedure]

Returns an image processor for image filter `accordion-fold-transition` (`CIAccordionFoldTransition`). Transitions from one image to another of a differing dimensions by unfolding.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- bottom-height (`distance/NSNumber`): The height in pixels from the bottom of the image to the bottom of the folded part of the transition.
- number-of-folds (`scalar/NSNumber`): The number of folds used in the transition.
- fold-shadow-amount (`scalar/NSNumber`): A value that specifies the intensity of the shadow in the transition.
- time (`time/NSNumber`): The duration of the effect.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(addition-compositing background-image) [procedure]

Returns an image processor for image filter `addition-compositing` (`CIAdditionCompositing`). Adds color components to achieve a brightening effect. This filter is typically used to add highlights and lens flare effects.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(affine-clamp transform) [procedure]

Returns an image processor for image filter `affine-clamp` (`CIAffineClamp`). Performs an affine transformation on a source image and then clamps the pixels at the edge of the transformed image, extending them outwards. This filter performs similarly to the “Affine Transform” filter except that it produces an image with infinite extent. You can use this filter when you need to blur an image but you want to avoid a soft, black fringe along the edges.

- transform (`transformation/NSAffineTransform`): The transform to apply to the image.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(affine-tile transform) [procedure]

Returns an image processor for image filter `affine-tile` (`CIAffineTile`). Applies an affine transformation to an image and then tiles the transformed image.

- transform (`transformation/NSAffineTransform`): The transform to apply to the image.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(affine-transform transform) [procedure]

Returns an image processor for image filter `affine-transform` (`CIAffineTransform`). Applies an affine transformation to an image. You can scale, translate, or rotate the input image. You can also apply a combination of these operations.

- transform (`transformation/NSAffineTransform`): A transform to apply to the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(area-alpha-weighted-histogram extent scale count) [procedure]

Returns an image processor for image filter `area-alpha-weighted-histogram` (`CIAreaAlphaWeightedHistogram`). Calculates alpha-weighted histograms of the unpremultiplied R, G, B channels for the specified area of an image. The output image is a one pixel tall image containing the histogram data for the RGB channels.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- scale (`scalar/NSNumber`): The scale value to use for the histogram values. If the scale is 1.0 and the image is opaque, then the bins in the resulting image will add up to 1.0.
- count (`scalar/NSNumber`): The number of bins for the histogram. This value will determine the width of the output image.

Filter categories: `builtin`, `video`, `reduction`, `still-image`

(area-average extent) [procedure]

Returns an image processor for image filter `area-average` (`CIAreaAverage`). Calculates the average color for the specified area in an image, returning the result in a pixel.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-bounds-red extent) [procedure]

Returns an image processor for image filter `area-bounds-red` (`CIAreaBoundsRed`). Calculates the approximate bounding box of pixels within the specified area of an image where the red component values are non-zero. The result is 1x1 pixel image where the RGBA values contain the normalized X,Y,W,H dimensions of the bounding box.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-histogram extent scale count) [procedure]

Returns an image processor for image filter `area-histogram` (`CIAreaHistogram`). Calculates histograms of the R, G, B, and A channels of the specified area of an image. The output image is a one pixel tall image containing the histogram data for all four channels.

- extent (`rect/CIVector`): A rectangle that, after intersection with the image extent, specifies the subregion of the image that you want to process.
- scale (`scalar/NSNumber`): The scale value to use for the histogram values. If the scale is 1.0, then the bins in the resulting image will add up to 1.0.
- count (`scalar/NSNumber`): The number of bins for the histogram. This value will determine the width of the output image.

Filter categories: `builtin`, `video`, `reduction`, `still-image`

(area-logarithmic-histogram extent scale count minimum-stop maximum-stop) [procedure]

Returns an image processor for image filter `area-logarithmic-histogram` (`CIAreaLogarithmicHistogram`). Calculates histogram of the R, G, B, and A channels of the specified area of an image. Before binning, the R, G, and B channel values are transformed by the log base two function. The output image is a one pixel tall image containing the histogram data for all four channels.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- scale (`scalar/NSNumber`): The amount of the effect.
- count (`scalar/NSNumber`): The number of bins for the histogram. This value will determine the width of the output image.
- minimum-stop (`scalar/NSNumber`): The minimum of the range of color channel values to be in the logarithmic histogram image.
- maximum-stop (`scalar/NSNumber`): The maximum of the range of color channel values to be in the logarithmic histogram image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-maximum extent) [procedure]

Returns an image processor for image filter `area-maximum` (`CIAreaMaximum`). Calculates the maximum component values for the specified area in an image, returning the result in a pixel.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-maximum-alpha extent) [procedure]

Returns an image processor for image filter `area-maximum-alpha` (`CIAreaMaximumAlpha`). Finds and returns the pixel with the maximum alpha value.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-minimum extent) [procedure]

Returns an image processor for image filter `area-minimum` (`CIAreaMinimum`). Calculates the minimum component values for the specified area in an image, returning the result in a pixel.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-minimum-alpha extent) [procedure]

Returns an image processor for image filter `area-minimum-alpha` (`CIAreaMinimumAlpha`). Finds and returns the pixel with the minimum alpha value.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-min-max extent) [procedure]

Returns an image processor for image filter `area-min-max` (`CIAreaMinMax`). Calculates the per-component minimum and maximum value for the specified area in an image. The result is returned in a 2x1 image where the component minimum values are stored in the pixel on the left.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(area-min-max-red extent) [procedure]

Returns an image processor for image filter `area-min-max-red` (`CIAreaMinMaxRed`). Calculates the minimum and maximum red component value for the specified area in an image. The result is returned in the red and green channels of a one pixel image.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(bars-swipe-transition target-image angle width bar-offset time) [procedure]

Returns an image processor for image filter `bars-swipe-transition` (`CIBarsSwipeTransition`). Transitions from one image to another by swiping rectangular portions of the foreground image to disclose the target image.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- angle (`angle/NSNumber`): The angle in radians of the bars.
- width (`distance/NSNumber`): The width of each bar.
- bar-offset (`scalar/NSNumber`): The offset of one bar with respect to another.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(bicubic-scale-transform scale aspect-ratio b c) [procedure]

Returns an image processor for image filter `bicubic-scale-transform` (`CIBicubicScaleTransform`). Produces a high-quality, scaled version of a source image. The parameters of B and C for this filter determine the sharpness or softness of the resampling. The most commonly used B and C values are 0.0 and 0.75, respectively.

- scale (`scalar/NSNumber`): The scaling factor to use on the image. Values less than 1.0 scale down the images. Values greater than 1.0 scale up the image.
- aspect-ratio (`scalar/NSNumber`): The additional horizontal scaling factor to use on the image.
- b (`scalar/NSNumber`): Specifies the value of B to use for the cubic resampling function.
- c (`scalar/NSNumber`): Specifies the value of C to use for the cubic resampling function.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `non-square-pixels`, `geometry-adjustment`

(blend-with-alpha-mask background-image mask-image) [procedure]

Returns an image processor for image filter `blend-with-alpha-mask` (`CIBlendWithAlphaMask`). Uses values from a mask image to interpolate between an image and the background. When a mask alpha value is 0.0, the result is the background. When the mask alpha value is 1.0, the result is the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.
- mask-image (`abstract-image/CIImage`): A masking image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(blend-with-blue-mask background-image mask-image) [procedure]

Returns an image processor for image filter `blend-with-blue-mask` (`CIBlendWithBlueMask`). Uses values from a mask image to interpolate between an image and the background. When a mask blue value is 0.0, the result is the background. When the mask blue value is 1.0, the result is the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.
- mask-image (`abstract-image/CIImage`): A masking image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(blend-with-mask background-image mask-image) [procedure]

Returns an image processor for image filter `blend-with-mask` (`CIBlendWithMask`). Uses values from a grayscale mask to interpolate between an image and the background. When a mask green value is 0.0, the result is the background. When the mask green value is 1.0, the result is the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.
- mask-image (`abstract-image/CIImage`): A grayscale mask. When a mask value is 0.0, the result is the background. When the mask value is 1.0, the result is the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(blend-with-red-mask background-image mask-image) [procedure]

Returns an image processor for image filter `blend-with-red-mask` (`CIBlendWithRedMask`). Uses values from a mask image to interpolate between an image and the background. When a mask red value is 0.0, the result is the background. When the mask red value is 1.0, the result is the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.
- mask-image (`abstract-image/CIImage`): A masking image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(bloom radius intensity) [procedure]

Returns an image processor for image filter `bloom` (`CIBloom`). Softens edges and applies a pleasant glow to an image.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the effect. The larger the radius, the greater the effect.
- intensity (`scalar/NSNumber`): The intensity of the effect. A value of 0.0 is no effect. A value of 1.0 is the maximum effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(bokeh-blur radius ring-amount ring-size softness) [procedure]

Returns an image processor for image filter `bokeh-blur` (`CIBokehBlur`). Smooths an image using a disc-shaped convolution kernel.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
- ring-amount (`scalar/NSNumber`): The amount of extra emphasis at the ring of the bokeh.
- ring-size (`scalar/NSNumber`): The size of extra emphasis at the ring of the bokeh.
- softness (`scalar/NSNumber`)

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(box-blur radius) [procedure]

Returns an image processor for image filter `box-blur` (`CIBoxBlur`). Smooths or sharpens an image using a box-shaped convolution kernel.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(bump-distortion center radius scale) [procedure]

Returns an image processor for image filter `bump-distortion` (`CIBumpDistortion`). Creates a concave or convex bump that originates at a specified point in the image.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
- scale (`scalar/NSNumber`): The scale of the effect determines the curvature of the bump. A value of 0.0 has no effect. Positive values create an outward bump; negative values create an inward bump.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(bump-distortion-linear center radius angle scale) [procedure]

Returns an image processor for image filter `bump-distortion-linear` (`CIBumpDistortionLinear`). Creates a bump that originates from a linear portion of the image.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
- angle (`angle/NSNumber`): The angle in radians of the line around which the distortion occurs.
- scale (`scalar/NSNumber`): The scale of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(canny-edge-detector gaussian-sigma perceptual threshold-high threshold-low hysteresis-passes) [procedure]

Returns an image processor for image filter `canny-edge-detector` (`CICannyEdgeDetector`). Applies the Canny Edge Detection algorithm to an image.

- gaussian-sigma (`scalar/NSNumber`): The gaussian sigma of blur to apply to the image to reduce high-frequency noise.
- perceptual (`boolean/NSNumber`): Specifies whether the edge thresholds should be computed in a perceptual color space.
- threshold-high (`scalar/NSNumber`): The threshold that determines if gradient magnitude is a strong edge.
- threshold-low (`scalar/NSNumber`): The threshold that determines if gradient magnitude is a weak edge.
- hysteresis-passes (`integer/NSNumber`): The number of hysteresis passes to apply to promote weak edge pixels.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(circle-splash-distortion center radius) [procedure]

Returns an image processor for image filter `circle-splash-distortion` (`CICircleSplashDistortion`). Distorts the pixels starting at the circumference of a circle and emanating outward.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(circular-screen center width sharpness) [procedure]

Returns an image processor for image filter `circular-screen` (`CICircularScreen`). Simulates a circular-shaped halftone screen.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- width (`distance/NSNumber`): The distance between each circle in the pattern.
- sharpness (`scalar/NSNumber`): The sharpness of the circles. The larger the value, the sharper the circles.

Filter categories: `builtin`, `video`, `halftone-effect`, `still-image`

(circular-wrap center radius angle) [procedure]

Returns an image processor for image filter `circular-wrap` (`CICircularWrap`). Wraps an image around a transparent circle. The distortion of the image increases with the distance from the center of the circle.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
- angle (`angle/NSNumber`): The angle in radians of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(clamp extent) [procedure]

Returns an image processor for image filter `clamp` (`CIClamp`). Clamps an image so the pixels with the specified extent are left unchanged but those at the boundary of the extent are extended outwards. This filter produces an image with infinite extent. You can use this filter when you need to blur an image but you want to avoid a soft, black fringe along the edges.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(cmyk-halftone center width angle sharpness g-c-r u-c-r) [procedure]

Returns an image processor for image filter `cmyk-halftone` (`CICMYKHalftone`). Creates a color, halftoned rendition of the source image, using cyan, magenta, yellow, and black inks over a white page.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- width (`distance/NSNumber`): The distance between dots in the pattern.
- angle (`angle/NSNumber`): The angle in radians of the pattern.
- sharpness (`distance/NSNumber`): The sharpness of the pattern. The larger the value, the sharper the pattern.
- g-c-r (`scalar/NSNumber`): The gray component replacement value. The value can vary from 0.0 (none) to 1.0.
- u-c-r (`scalar/NSNumber`): The under color removal value. The value can vary from 0.0 to 1.0.

Filter categories: `builtin`, `video`, `halftone-effect`, `still-image`

(color-absolute-difference image2) [procedure]

Returns an image processor for image filter `color-absolute-difference` (`CIColorAbsoluteDifference`). Produces an image that is the absolute value of the color difference between two images. The alpha channel of the result will be the product of the two image alpha channels.

- image2 (`abstract-image/CIImage`): The second input image for differencing.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(color-blend-mode background-image) [procedure]

Returns an image processor for image filter `color-blend-mode` (`CIColorBlendMode`). Uses the luminance values of the background with the hue and saturation values of the source image. This mode preserves the gray levels in the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(color-burn-blend-mode background-image) [procedure]

Returns an image processor for image filter `color-burn-blend-mode` (`CIColorBurnBlendMode`). Darkens the background image samples to reflect the source image samples. Source image sample values that specify white do not produce a change.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(color-clamp min-components max-components) [procedure]

Returns an image processor for image filter `color-clamp` (`CIColorClamp`). Clamp color to a certain range.

- min-components (`image-coefficients/CIVector`): Lower clamping values.
- max-components (`image-coefficients/CIVector`): Higher clamping values.

Filter categories: `builtin`, `video`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(color-controls saturation brightness contrast) [procedure]

Returns an image processor for image filter `color-controls` (`CIColorControls`). Adjusts saturation, brightness, and contrast values.

- saturation (`scalar/NSNumber`): The amount of saturation to apply. The larger the value, the more saturated the result.
- brightness (`scalar/NSNumber`): The amount of brightness to apply. The larger the value, the brighter the result.
- contrast (`scalar/NSNumber`): The amount of contrast to apply. The larger the value, the more contrast in the resulting image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(color-cross-polynomial red-coefficients green-coefficients blue-coefficients) [procedure]

Returns an image processor for image filter `color-cross-polynomial` (`CIColorCrossPolynomial`). Adjusts the color of an image with polynomials.

- red-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for red channel.
- green-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for green channel.
- blue-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for blue channel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-cube cube-dimension cube-data extrapolate) [procedure]

Returns an image processor for image filter `color-cube` (`CIColorCube`). Uses a three-dimensional color table to transform the source image pixels.

- cube-dimension (`count/NSNumber`): The dimension of the color cube.
- cube-data (`bytevector/NSData`): Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
- extrapolate (`boolean/NSNumber`): If true, then the color cube will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-cubes-mixed-with-mask mask-image cube-dimension cube0-data cube1-data color-space extrapolate) [procedure]

Returns an image processor for image filter `color-cubes-mixed-with-mask` (`CIColorCubesMixedWithMask`). Uses two three-dimensional color tables in a specified colorspace to transform the source image pixels. The mask image is used as an interpolant to mix the output of the two cubes.

- mask-image (`abstract-image/CIImage`): A masking image.
- cube-dimension (`count/NSNumber`): The dimension of the color cubes.
- cube0-data (`bytevector/NSData`): Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
- cube1-data (`bytevector/NSData`): Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
- color-space (`color-space/NSObject`): The CGColorSpace that defines the RGB values in the color table.
- extrapolate (`boolean/NSNumber`): If true, then the color cube will be extrapolated if the input image contains RGB component values outside the range 0 to 1.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-cube-with-color-space cube-dimension cube-data extrapolate color-space) [procedure]

Returns an image processor for image filter `color-cube-with-color-space` (`CIColorCubeWithColorSpace`). Uses a three-dimensional color table in a specified colorspace to transform the source image pixels.

- cube-dimension (`count/NSNumber`): The dimension of the color cube.
- cube-data (`bytevector/NSData`): Data containing a 3-dimensional color table of floating-point premultiplied RGBA values. The cells are organized in a standard ordering. The columns and rows of the data are indexed by red and green, respectively. Each data plane is followed by the next higher plane in the data, with planes indexed by blue.
- extrapolate (`number/NSNumber`): If true, then the color cube will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.
- color-space (`color-space/NSObject`): The CGColorSpace that defines the RGB values in the color table.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-curves curves-data curves-domain color-space) [procedure]

Returns an image processor for image filter `color-curves` (`CIColorCurves`). Uses a three-channel one-dimensional color table to transform the source image pixels.

- curves-data (`bytevector/NSData`): Data containing a color table of floating-point RGB values.
- curves-domain (`image-coefficients/CIVector`): A two-element vector that defines the minimum and maximum RGB component values that are used to look up result values from the color table.
- color-space (`color-space/NSObject`): The CGColorSpace that defines the RGB values in the color table.

Filter categories: `builtin`, `video`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-dodge-blend-mode background-image) [procedure]

Returns an image processor for image filter `color-dodge-blend-mode` (`CIColorDodgeBlendMode`). Brightens the background image samples to reflect the source image samples. Source image sample values that specify black do not produce a change.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(color-invert)

Returns an image processor for image filter `color-invert` (`CIColorInvert`). Inverts the colors in an image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-map gradient-image) [procedure]

Returns an image processor for image filter `color-map` (`CIColorMap`). Performs a nonlinear transformation of source color values using mapping values provided in a table.

- gradient-image (`gradient/CIImage`): The image data from this image transforms the source image values.

Filter categories: `builtin`, `video`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-matrix r-vector g-vector b-vector a-vector bias-vector) [procedure]

Returns an image processor for image filter `color-matrix` (`CIColorMatrix`). Multiplies source color values and adds a bias factor to each color component.

- r-vector (`image-coefficients/CIVector`): The amount of red to multiply the source color values by.
- g-vector (`image-coefficients/CIVector`): The amount of green to multiply the source color values by.
- b-vector (`image-coefficients/CIVector`): The amount of blue to multiply the source color values by.
- a-vector (`image-coefficients/CIVector`): The amount of alpha to multiply the source color values by.
- bias-vector (`image-coefficients/CIVector`): A vector that’s added to each color component.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(color-monochrome color intensity) [procedure]

Returns an image processor for image filter `color-monochrome` (`CIColorMonochrome`). Remaps colors so they fall within shades of a single color.

- color (`opaque-color/CIColor`): The monochrome color to apply to the image.
- intensity (`scalar/NSNumber`): The intensity of the monochrome effect. A value of 1.0 creates a monochrome image using the supplied color. A value of 0.0 has no effect on the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-polynomial red-coefficients green-coefficients blue-coefficients alpha-coefficients) [procedure]

Returns an image processor for image filter `color-polynomial` (`CIColorPolynomial`). Adjusts the color of an image with polynomials.

- red-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for red channel.
- green-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for green channel.
- blue-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for blue channel.
- alpha-coefficients (`image-coefficients/CIVector`): Polynomial coefficients for alpha channel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(color-posterize levels) [procedure]

Returns an image processor for image filter `color-posterize` (`CIColorPosterize`). Remaps red, green, and blue color components to the number of brightness values you specify for each color component. This filter flattens colors to achieve a look similar to that of a silk-screened poster.

- levels (`scalar/NSNumber`): The number of brightness levels to use for each color component. Lower values result in a more extreme poster effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(color-threshold threshold) [procedure]

Returns an image processor for image filter `color-threshold` (`CIColorThreshold`). Produces a binarized image from an image and a threshold value. The red, green and blue channels of the resulting image will be one if its value is greater than the threshold and zero otherwise.

- threshold (`scalar/NSNumber`): The threshold value that governs if the RGB channels of the resulting image will be zero or one.

Filter categories: `builtin`, `video`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(color-threshold-otsu)

Returns an image processor for image filter `color-threshold-otsu` (`CIColorThresholdOtsu`). Produces a binarized image from an image with finite extent. The threshold is calculated from the image histogram using Otsu’s method. The red, green and blue channels of the resulting image will be one if its value is greater than the threshold and zero otherwise.

Filter categories: `builtin`, `video`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(column-average extent) [procedure]

Returns an image processor for image filter `column-average` (`CIColumnAverage`). Calculates the average color for each column of the specified area in an image, returning the result in a 1D image.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(comic-effect)

Returns an image processor for image filter `comic-effect` (`CIComicEffect`). Simulates a comic book drawing by outlining edges and applying a color halftone effect.

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(convert-lab-to-rgb normalize) [procedure]

Returns an image processor for image filter `convert-lab-to-rgb` (`CIConvertLabToRGB`). Converts an image from Lab color space to the Core Image RGB working space.

- normalize (`boolean/NSNumber`): If normalize is false then the L channel is in the range 0 to 100 and the ab channels are in the range -128 to 128. If normalize is true then the Lab channels are in the range 0 to 1.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(convert-rgb-to-lab normalize) [procedure]

Returns an image processor for image filter `convert-rgb-to-lab` (`CIConvertRGBtoLab`). Converts an image from the Core Image RGB working space to Lab color space.

- normalize (`boolean/NSNumber`): If normalize is false then the L channel is in the range 0 to 100 and the ab channels are in the range -128 to 128. If normalize is true then the Lab channels are in the range 0 to 1.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(convolution-3x3 weights bias) [procedure]

Returns an image processor for image filter `convolution-3x3` (`CIConvolution3X3`). Convolution with 3 by 3 matrix.

- weights (`image-coefficients/CIVector`): A vector containing the 9 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGBA components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-5x5 weights bias) [procedure]

Returns an image processor for image filter `convolution-5x5` (`CIConvolution5X5`). Convolution with 5 by 5 matrix.

- weights (`image-coefficients/CIVector`): A vector containing the 25 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGBA components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-7x7 weights bias) [procedure]

Returns an image processor for image filter `convolution-7x7` (`CIConvolution7X7`). Convolution with 7 by 7 matrix.

- weights (`image-coefficients/CIVector`): A vector containing the 49 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGBA components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution9-horizontal weights bias) [procedure]

Returns an image processor for image filter `convolution9-horizontal` (`CIConvolution9Horizontal`). Horizontal Convolution with 9 values.

- weights (`image-coefficients/CIVector`): A vector containing the 9 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGBA components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution9-vertical weights bias) [procedure]

Returns an image processor for image filter `convolution9-vertical` (`CIConvolution9Vertical`). Vertical Convolution with 9 values.

- weights (`image-coefficients/CIVector`): A vector containing the 9 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGBA components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-rgb-3x3 weights bias) [procedure]

Returns an image processor for image filter `convolution-rgb-3x3` (`CIConvolutionRGB3X3`). Convolution of RGB channels with 3 by 3 matrix.

- weights (`image-coefficients/CIVector`): A vector containing the 9 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGB components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-rgb-5x5 weights bias) [procedure]

Returns an image processor for image filter `convolution-rgb-5x5` (`CIConvolutionRGB5X5`). Convolution of RGB channels with 5 by 5 matrix.

- weights (`image-coefficients/CIVector`): A vector containing the 25 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGB components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-rgb-7x7 weights bias) [procedure]

Returns an image processor for image filter `convolution-rgb-7x7` (`CIConvolutionRGB7X7`). Convolution of RGB channels with 7 by 7 matrix.

- weights (`image-coefficients/CIVector`): A vector containing the 49 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGB components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-rgb9-horizontal weights bias) [procedure]

Returns an image processor for image filter `convolution-rgb9-horizontal` (`CIConvolutionRGB9Horizontal`). Horizontal Convolution of RGB channels with 9 values.

- weights (`image-coefficients/CIVector`): A vector containing the 9 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGB components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(convolution-rgb9-vertical weights bias) [procedure]

Returns an image processor for image filter `convolution-rgb9-vertical` (`CIConvolutionRGB9Vertical`). Vertical Convolution of RGB channels with 9 values.

- weights (`image-coefficients/CIVector`): A vector containing the 9 weights of the convolution kernel.
- bias (`scalar/NSNumber`): A value that is added to the RGB components of the output pixel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(copy-machine-transition target-image extent color time angle width opacity) [procedure]

Returns an image processor for image filter `copy-machine-transition` (`CICopyMachineTransition`). Transitions from one image to another by simulating the effect of a copy machine.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- color (`opaque-color/CIColor`): The color of the copier light.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- angle (`angle/NSNumber`): The angle in radians of the copier light.
- width (`distance/NSNumber`): The width of the copier light.
- opacity (`scalar/NSNumber`): The opacity of the copier light. A value of 0.0 is transparent. A value of 1.0 is opaque.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(crop rectangle) [procedure]

Returns an image processor for image filter `crop` (`CICrop`). Applies a crop to an image. The size and shape of the cropped image depend on the rectangle you specify.

- rectangle (`rect/CIVector`): The rectangle that specifies the crop to apply to the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(crystallize radius center) [procedure]

Returns an image processor for image filter `crystallize` (`CICrystallize`). Creates polygon-shaped color blocks by aggregating source pixel-color values.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the effect. The larger the radius, the larger the resulting crystals.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(darken-blend-mode background-image) [procedure]

Returns an image processor for image filter `darken-blend-mode` (`CIDarkenBlendMode`). Creates composite image samples by choosing the darker samples (from either the source image or the background). The result is that the background image samples are replaced by any source image samples that are darker. Otherwise, the background image samples are left unchanged.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(depth-of-field point0 point1 saturation unsharp-mask-radius unsharp-mask-intensity radius) [procedure]

Returns an image processor for image filter `depth-of-field` (`CIDepthOfField`). Simulates miniaturization effect created by Tilt & Shift lens by performing depth of field effects.

- point0 (`point/CIVector`)
- point1 (`point/CIVector`)
- saturation (`scalar/NSNumber`): The amount to adjust the saturation.
- unsharp-mask-radius (`scalar/NSNumber`)
- unsharp-mask-intensity (`scalar/NSNumber`)
- radius (`scalar/NSNumber`): The distance from the center of the effect.

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(depth-to-disparity)

Returns an image processor for image filter `depth-to-disparity` (`CIDepthToDisparity`). Convert a depth data image to disparity data.

Filter categories: `builtin`, `video`, `color-adjustment`, `still-image`

(difference-blend-mode background-image) [procedure]

Returns an image processor for image filter `difference-blend-mode` (`CIDifferenceBlendMode`). Subtracts either the source image sample color from the background image sample color, or the reverse, depending on which sample has the greater brightness value. Source image sample values that are black produce no change; white inverts the background color values.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(disc-blur radius) [procedure]

Returns an image processor for image filter `disc-blur` (`CIDiscBlur`). Smooths an image using a disc-shaped convolution kernel.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(disintegrate-with-mask-transition target-image mask-image time shadow-radius shadow-density shadow-offset) [procedure]

Returns an image processor for image filter `disintegrate-with-mask-transition` (`CIDisintegrateWithMaskTransition`). Transitions from one image to another using the shape defined by a mask.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- mask-image (`abstract-image/CIImage`): An image that defines the shape to use when disintegrating from the source to the target image.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- shadow-radius (`distance/NSNumber`): The radius of the shadow created by the mask.
- shadow-density (`scalar/NSNumber`): The density of the shadow created by the mask.
- shadow-offset (`offset/CIVector`): The offset of the shadow created by the mask.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(disparity-to-depth)

Returns an image processor for image filter `disparity-to-depth` (`CIDisparityToDepth`). Convert a disparity data image to depth data.

Filter categories: `builtin`, `video`, `color-adjustment`, `still-image`

(displacement-distortion displacement-image scale) [procedure]

Returns an image processor for image filter `displacement-distortion` (`CIDisplacementDistortion`). Applies the grayscale values of the second image to the first image. The output image has a texture defined by the grayscale values.

- displacement-image (`abstract-image/CIImage`): An image whose grayscale values will be applied to the source image.
- scale (`distance/NSNumber`): The amount of texturing of the resulting image. The larger the value, the greater the texturing.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(dissolve-transition target-image time) [procedure]

Returns an image processor for image filter `dissolve-transition` (`CIDissolveTransition`). Uses a dissolve to transition from one image to another.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(distance-gradient-from-red-mask maximum-distance) [procedure]

Returns an image processor for image filter `distance-gradient-from-red-mask` (`CIDistanceGradientFromRedMask`). Produces an infinite image where the red channel contains the distance in pixels from each pixel to the mask.

- maximum-distance (`distance/NSNumber`): Determines the maximum distance to the mask that can be measured. Distances between zero and the maximum will be normalized to zero and one.

Filter categories: `builtin`, `video`, `gradient`, `still-image`

(dither intensity) [procedure]

Returns an image processor for image filter `dither` (`CIDither`). Apply dithering to an image. This operation is usually performed in a perceptual color space.

- intensity (`scalar/NSNumber`): The intensity of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-effect`, `still-image`

(divide-blend-mode background-image) [procedure]

Returns an image processor for image filter `divide-blend-mode` (`CIDivideBlendMode`). Divides the background image sample color from the source image sample color.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(document-enhancer amount) [procedure]

Returns an image processor for image filter `document-enhancer` (`CIDocumentEnhancer`). Enhance a document image by removing unwanted shadows, whitening the background, and enhancing contrast.

- amount (`scalar/NSNumber`): The amount of enhancement.

Filter categories: `builtin`, `color-effect`, `still-image`, `non-square-pixels`

(dot-screen center angle width sharpness) [procedure]

Returns an image processor for image filter `dot-screen` (`CIDotScreen`). Simulates the dot patterns of a halftone screen.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the pattern.
- width (`distance/NSNumber`): The distance between dots in the pattern.
- sharpness (`scalar/NSNumber`): The sharpness of the pattern. The larger the value, the sharper the pattern.

Filter categories: `builtin`, `video`, `halftone-effect`, `still-image`

(droste inset-point0 inset-point1 strands periodicity rotation zoom) [procedure]

Returns an image processor for image filter `droste` (`CIDroste`). Performs M.C. Escher Droste style deformation.

- inset-point0 (`point/CIVector`)
- inset-point1 (`point/CIVector`)
- strands (`scalar/NSNumber`)
- periodicity (`scalar/NSNumber`)
- rotation (`angle/NSNumber`)
- zoom (`scalar/NSNumber`)

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(edge-preserve-upsample-filter small-image spatial-sigma luma-sigma) [procedure]

Returns an image processor for image filter `edge-preserve-upsample-filter` (`CIEdgePreserveUpsampleFilter`). Upsamples a small image to the size of the input image using the luminance of the input image as a guide to preserve detail.

- small-image (`abstract-image/CIImage`)
- spatial-sigma (`scalar/NSNumber`)
- luma-sigma (`scalar/NSNumber`)

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`, `geometry-adjustment`

(edges intensity) [procedure]

Returns an image processor for image filter `edges` (`CIEdges`). Finds all edges in an image and displays them in color.

- intensity (`scalar/NSNumber`): The intensity of the edges. The larger the value, the higher the intensity.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(edge-work radius) [procedure]

Returns an image processor for image filter `edge-work` (`CIEdgeWork`). Produces a stylized black-and-white rendition of an image that looks similar to a woodblock cutout.

- radius (`distance/NSNumber`): The thickness of the edges. The larger the value, the thicker the edges.

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(eightfold-reflected-tile center angle width) [procedure]

Returns an image processor for image filter `eightfold-reflected-tile` (`CIEightfoldReflectedTile`). Produces a tiled image from a source image by applying an 8-way reflected symmetry.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(exclusion-blend-mode background-image) [procedure]

Returns an image processor for image filter `exclusion-blend-mode` (`CIExclusionBlendMode`). Produces an effect similar to that produced by the “Difference Blend Mode” filter but with lower contrast. Source image sample values that are black do not produce a change; white inverts the background color values.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(exposure-adjust e-v) [procedure]

Returns an image processor for image filter `exposure-adjust` (`CIExposureAdjust`). Adjusts the exposure setting for an image similar to the way you control exposure for a camera when you change the F-stop.

- e-v (`scalar/NSNumber`): The amount to adjust the exposure of the image by. The larger the value, the brighter the exposure.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(false-color color0 color1) [procedure]

Returns an image processor for image filter `false-color` (`CIFalseColor`). Maps luminance to a color ramp of two colors. False color is often used to process astronomical and other scientific data, such as ultraviolet and X-ray images.

- color0 (`color/CIColor`): The first color to use for the color ramp.
- color1 (`color/CIColor`): The second color to use for the color ramp.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(flash-transition target-image center extent color time max-striation-radius striation-strength striation-contrast fade-threshold) [procedure]

Returns an image processor for image filter `flash-transition` (`CIFlashTransition`). Transitions from one image to another by creating a flash. The flash originates from a point you specify. Small at first, it rapidly expands until the image frame is completely filled with the flash color. As the color fades, the target image begins to appear.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- extent (`rect/CIVector`): The extent of the flash.
- color (`color/CIColor`): The color of the light rays emanating from the flash.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- max-striation-radius (`scalar/NSNumber`): The radius of the light rays emanating from the flash.
- striation-strength (`scalar/NSNumber`): The strength of the light rays emanating from the flash.
- striation-contrast (`scalar/NSNumber`): The contrast of the light rays emanating from the flash.
- fade-threshold (`scalar/NSNumber`): The amount of fade between the flash and the target image. The higher the value, the more flash time and the less fade time.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(fourfold-reflected-tile center angle width acute-angle) [procedure]

Returns an image processor for image filter `fourfold-reflected-tile` (`CIFourfoldReflectedTile`). Produces a tiled image from a source image by applying a 4-way reflected symmetry.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.
- acute-angle (`angle/NSNumber`): The primary angle for the repeating reflected tile. Small values create thin diamond tiles, and higher values create fatter reflected tiles.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(fourfold-rotated-tile center angle width) [procedure]

Returns an image processor for image filter `fourfold-rotated-tile` (`CIFourfoldRotatedTile`). Produces a tiled image from a source image by rotating the source at increments of 90 degrees.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(fourfold-translated-tile center angle width acute-angle) [procedure]

Returns an image processor for image filter `fourfold-translated-tile` (`CIFourfoldTranslatedTile`). Produces a tiled image from a source image by applying 4 translation operations.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.
- acute-angle (`angle/NSNumber`): The primary angle for the repeating translated tile. Small values create thin diamond tiles, and higher values create fatter translated tiles.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(gabor-gradients)

Returns an image processor for image filter `gabor-gradients` (`CIGaborGradients`). Applies multichannel 5 by 5 Gabor gradient filter to an image. The resulting image has maximum horizontal gradient in the red channel and the maximum vertical gradient in the green channel. The gradient values can be positive or negative.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(gamma-adjust power) [procedure]

Returns an image processor for image filter `gamma-adjust` (`CIGammaAdjust`). Adjusts midtone brightness. This filter is typically used to compensate for nonlinear effects of displays. Adjusting the gamma effectively changes the slope of the transition between black and white.

- power (`scalar/NSNumber`): A gamma value to use to correct image brightness. The larger the value, the darker the result.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(gaussian-blur radius) [procedure]

Returns an image processor for image filter `gaussian-blur` (`CIGaussianBlur`). Spreads source pixels by an amount specified by a Gaussian distribution.

- radius (`scalar/NSNumber`): The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(gaussian-gradient center color0 color1 radius) [procedure]

Returns an image generator for image filter `gaussian-gradient` (`CIGaussianGradient`). Generates a gradient that varies from one color to another using a Gaussian distribution.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- color0 (`color/CIColor`): The first color to use in the gradient.
- color1 (`color/CIColor`): The second color to use in the gradient.
- radius (`distance/NSNumber`): The radius of the Gaussian distribution.

Filter categories: `builtin`, `video`, `gradient`, `high-dynamic-range`, `still-image`

(glass-distortion texture center scale) [procedure]

Returns an image processor for image filter `glass-distortion` (`CIGlassDistortion`). Distorts an image by applying a glass-like texture. The raised portions of the output image are the result of applying a texture map.

- texture (`abstract-image/CIImage`): A texture to apply to the source image.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- scale (`distance/NSNumber`): The amount of texturing of the resulting image. The larger the value, the greater the texturing.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(glass-lozenge point0 point1 radius refraction) [procedure]

Returns an image processor for image filter `glass-lozenge` (`CIGlassLozenge`). Creates a lozenge-shaped lens and distorts the portion of the image over which the lens is placed.

- point0 (`point/CIVector`): The x and y position that defines the center of the circle at one end of the lozenge.
- point1 (`point/CIVector`): The x and y position that defines the center of the circle at the other end of the lozenge.
- radius (`distance/NSNumber`): The radius of the lozenge. The larger the radius, the wider the extent of the distortion.
- refraction (`scalar/NSNumber`): The refraction of the glass.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(glide-reflected-tile center angle width) [procedure]

Returns an image processor for image filter `glide-reflected-tile` (`CIGlideReflectedTile`). Produces a tiled image from a source image by translating and smearing the image.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(gloom radius intensity) [procedure]

Returns an image processor for image filter `gloom` (`CIGloom`). Dulls the highlights of an image.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the effect. The larger the radius, the greater the effect.
- intensity (`scalar/NSNumber`): The intensity of the effect. A value of 0.0 is no effect. A value of 1.0 is the maximum effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(guided-filter guide-image radius epsilon) [procedure]

Returns an image processor for image filter `guided-filter` (`CIGuidedFilter`). Upsamples a small image to the size of the guide image using the content of the guide to preserve detail.

- guide-image (`abstract-image/CIImage`): A larger image to use as a guide.
- radius (`scalar/NSNumber`): The distance from the center of the effect.
- epsilon (`scalar/NSNumber`)

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(hard-light-blend-mode background-image) [procedure]

Returns an image processor for image filter `hard-light-blend-mode` (`CIHardLightBlendMode`). Either multiplies or screens colors, depending on the source image sample color. If the source image sample color is lighter than 50% gray, the background is lightened, similar to screening. If the source image sample color is darker than 50% gray, the background is darkened, similar to multiplying. If the source image sample color is equal to 50% gray, the source image is not changed. Image samples that are equal to pure black or pure white result in pure black or white. The overall effect is similar to what you would achieve by shining a harsh spotlight on the source image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(hatched-screen center angle width sharpness) [procedure]

Returns an image processor for image filter `hatched-screen` (`CIHatchedScreen`). Simulates the hatched pattern of a halftone screen.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the pattern.
- width (`distance/NSNumber`): The distance between lines in the pattern.
- sharpness (`scalar/NSNumber`): The amount of sharpening to apply.

Filter categories: `builtin`, `video`, `halftone-effect`, `still-image`

(height-field-from-mask radius) [procedure]

Returns an image processor for image filter `height-field-from-mask` (`CIHeightFieldFromMask`). Produces a continuous three-dimensional, loft-shaped height field from a grayscale mask. The white values of the mask define those pixels that are inside the height field while the black values define those pixels that are outside. The field varies smoothly and continuously inside the mask, reaching the value 0 at the edge of the mask. You can use this filter with the Shaded Material filter to produce extremely realistic shaded objects.

- radius (`distance/NSNumber`): The distance from the edge of the mask for the smooth transition is proportional to the input radius. Larger values make the transition smoother and more pronounced. Smaller values make the transition approximate a fillet radius.

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(hexagonal-pixellate center scale) [procedure]

Returns an image processor for image filter `hexagonal-pixellate` (`CIHexagonalPixellate`). Displays an image as colored hexagons whose color is an average of the pixels they replace.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- scale (`distance/NSNumber`): The scale determines the size of the hexagons. Larger values result in larger hexagons.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(highlight-shadow-adjust radius shadow-amount highlight-amount) [procedure]

Returns an image processor for image filter `highlight-shadow-adjust` (`CIHighlightShadowAdjust`). Adjust the tonal mapping of an image while preserving spatial detail.

- radius (`scalar/NSNumber`): Shadow Highlight Radius.
- shadow-amount (`scalar/NSNumber`): The amount of adjustment to the shadows of the image.
- highlight-amount (`scalar/NSNumber`): The amount of adjustment to the highlights of the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(histogram-display-filter height high-limit low-limit) [procedure]

Returns an image processor for image filter `histogram-display-filter` (`CIHistogramDisplayFilter`). Generates a displayable histogram image from the output of the “Area Histogram” filter.

- height (`scalar/NSNumber`): The height of the displayable histogram image.
- high-limit (`scalar/NSNumber`): The fraction of the right portion of the histogram image to make lighter.
- low-limit (`scalar/NSNumber`): The fraction of the left portion of the histogram image to make darker.

Filter categories: `builtin`, `video`, `reduction`, `still-image`

(hole-distortion center radius) [procedure]

Returns an image processor for image filter `hole-distortion` (`CIHoleDistortion`). Creates a circular area that pushes the image pixels outward, distorting those pixels closest to the circle the most.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(hue-adjust angle) [procedure]

Returns an image processor for image filter `hue-adjust` (`CIHueAdjust`). Changes the overall hue, or tint, of the source pixels.

- angle (`angle/NSNumber`): An angle in radians to use to correct the hue of an image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(hue-blend-mode background-image) [procedure]

Returns an image processor for image filter `hue-blend-mode` (`CIHueBlendMode`). Uses the luminance and saturation values of the background with the hue of the source image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(hue-saturation-value-gradient value radius softness dither color-space) [procedure]

Returns an image generator for image filter `hue-saturation-value-gradient` (`CIHueSaturationValueGradient`). Generates a color wheel that shows hues and saturations for a specified value.

- value (`scalar/NSNumber`): The color value used to generate the color wheel.
- radius (`distance/NSNumber`): The distance from the center of the effect.
- softness (`scalar/NSNumber`)
- dither (`scalar/NSNumber`)
- color-space (`color-space/NSObject`): The CGColorSpaceRef that the color wheel should be generated in.

Filter categories: `builtin`, `video`, `gradient`, `still-image`

(kaleidoscope count center angle) [procedure]

Returns an image processor for image filter `kaleidoscope` (`CIKaleidoscope`). Produces a kaleidoscopic image from a source image by applying 12-way symmetry.

- count (`scalar/NSNumber`): The number of reflections in the pattern.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of reflection.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(keystone-correction-combined focal-length top-left top-right bottom-right bottom-left) [procedure]

Returns an image processor for image filter `keystone-correction-combined` (`CIKeystoneCorrectionCombined`). Apply keystone correction to an image with combined horizontal and vertical guides.

- focal-length (`scalar/NSNumber`): 35mm equivalent focal length of the input image.
- top-left (`point/CIVector`): The top left coordinate of the guide.
- top-right (`point/CIVector`): The top right coordinate of the guide.
- bottom-right (`point/CIVector`): The bottom right coordinate of the guide.
- bottom-left (`point/CIVector`): The bottom left coordinate of the guide.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(keystone-correction-horizontal focal-length top-left top-right bottom-right bottom-left) [procedure]

Returns an image processor for image filter `keystone-correction-horizontal` (`CIKeystoneCorrectionHorizontal`). Apply horizontal keystone correction to an image with guides.

- focal-length (`scalar/NSNumber`): 35mm equivalent focal length of the input image.
- top-left (`point/CIVector`): The top left coordinate of the guide.
- top-right (`point/CIVector`): The top right coordinate of the guide.
- bottom-right (`point/CIVector`): The bottom right coordinate of the guide.
- bottom-left (`point/CIVector`): The bottom left coordinate of the guide.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(keystone-correction-vertical focal-length top-left top-right bottom-right bottom-left) [procedure]

Returns an image processor for image filter `keystone-correction-vertical` (`CIKeystoneCorrectionVertical`). Apply vertical keystone correction to an image with guides.

- focal-length (`scalar/NSNumber`): 35mm equivalent focal length of the input image.
- top-left (`point/CIVector`): The top left coordinate of the guide.
- top-right (`point/CIVector`): The top right coordinate of the guide.
- bottom-right (`point/CIVector`): The bottom right coordinate of the guide.
- bottom-left (`point/CIVector`): The bottom left coordinate of the guide.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(kmeans extent means count passes perceptual) [procedure]

Returns an image processor for image filter `kmeans` (`CIKMeans`). Create a palette of the most common colors found in the image.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- means (`abstract-image/CIImage`): Specifies the color seeds to use for k-means clustering, either passed as an image or an array of colors.
- count (`count/NSNumber`): Specifies how many k-means color clusters should be used.
- passes (`count/NSNumber`): Specifies how many k-means passes should be performed.
- perceptual (`boolean/NSNumber`): Specifies whether the k-means color palette should be computed in a perceptual color space.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(lab-delta-e image2) [procedure]

Returns an image processor for image filter `lab-delta-e` (`CILabDeltaE`). Produces an image with the Lab ∆E difference values between two images. The result image will contain ∆E 1994 values between 0.0 and 100.0 where 2.0 is considered a just noticeable difference.

- image2 (`abstract-image/CIImage`): The second input image for comparison.

Filter categories: `builtin`, `video`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(lanczos-scale-transform scale aspect-ratio) [procedure]

Returns an image processor for image filter `lanczos-scale-transform` (`CILanczosScaleTransform`). Produces a high-quality, scaled version of a source image. You typically use this filter to scale down an image.

- scale (`scalar/NSNumber`): The scaling factor to use on the image. Values less than 1.0 scale down the images. Values greater than 1.0 scale up the image.
- aspect-ratio (`scalar/NSNumber`): The additional horizontal scaling factor to use on the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(lighten-blend-mode background-image) [procedure]

Returns an image processor for image filter `lighten-blend-mode` (`CILightenBlendMode`). Creates composite image samples by choosing the lighter samples (either from the source image or the background). The result is that the background image samples are replaced by any source image samples that are lighter. Otherwise, the background image samples are left unchanged.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(light-tunnel center rotation radius) [procedure]

Returns an image processor for image filter `light-tunnel` (`CILightTunnel`). Light tunnel distortion.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- rotation (`angle/NSNumber`): Rotation angle in radians of the light tunnel.
- radius (`distance/NSNumber`): Center radius of the light tunnel.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(linear-burn-blend-mode background-image) [procedure]

Returns an image processor for image filter `linear-burn-blend-mode` (`CILinearBurnBlendMode`). Inverts the unpremultiplied source and background image sample color, inverts the sum, and then blends the result with the background according to the PDF basic compositing formula. Source image values that are white produce no change. Source image values that are black invert the background color values.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(linear-dodge-blend-mode background-image) [procedure]

Returns an image processor for image filter `linear-dodge-blend-mode` (`CILinearDodgeBlendMode`). Unpremultiplies the source and background image sample colors, adds them, and then blends the result with the background according to the PDF basic compositing formula. Source image values that are black produces output that is the same as the background. Source image values that are non-black brighten the background color values.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(linear-gradient point0 point1 color0 color1) [procedure]

Returns an image generator for image filter `linear-gradient` (`CILinearGradient`). Generates a gradient that varies along a linear axis between two defined endpoints.

- point0 (`point/CIVector`): The starting position of the gradient – where the first color begins.
- point1 (`point/CIVector`): The ending position of the gradient – where the second color begins.
- color0 (`color/CIColor`): The first color to use in the gradient.
- color1 (`color/CIColor`): The second color to use in the gradient.

Filter categories: `builtin`, `video`, `gradient`, `high-dynamic-range`, `still-image`

(linear-light-blend-mode background-image) [procedure]

Returns an image processor for image filter `linear-light-blend-mode` (`CILinearLightBlendMode`). A blend mode that is a combination of linear burn and linear dodge blend modes.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(linear-to-srgbtone-curve)

Returns an image processor for image filter `linear-to-srgbtone-curve` (`CILinearToSRGBToneCurve`). Converts an image in linear space to sRGB space.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(line-overlay n-r-noise-level n-r-sharpness edge-intensity threshold contrast) [procedure]

Returns an image processor for image filter `line-overlay` (`CILineOverlay`). Creates a sketch that outlines the edges of an image in black, leaving the non-outlined portions of the image transparent. The result has alpha and is rendered in black, so it won’t look like much until you render it over another image using source over compositing.

- n-r-noise-level (`scalar/NSNumber`): The noise level of the image (used with camera data) that gets removed before tracing the edges of the image. Increasing the noise level helps to clean up the traced edges of the image.
- n-r-sharpness (`scalar/NSNumber`): The amount of sharpening done when removing noise in the image before tracing the edges of the image. This improves the edge acquisition.
- edge-intensity (`scalar/NSNumber`): The accentuation factor of the Sobel gradient information when tracing the edges of the image. Higher values find more edges, although typically a low value (such as 1.0) is used.
- threshold (`scalar/NSNumber`): This value determines edge visibility. Larger values thin out the edges.
- contrast (`scalar/NSNumber`): The amount of anti-aliasing to use on the edges produced by this filter. Higher values produce higher contrast edges (they are less anti-aliased).

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(line-screen center angle width sharpness) [procedure]

Returns an image processor for image filter `line-screen` (`CILineScreen`). Simulates the line pattern of a halftone screen.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the pattern.
- width (`distance/NSNumber`): The distance between lines in the pattern.
- sharpness (`scalar/NSNumber`): The sharpness of the pattern. The larger the value, the sharper the pattern.

Filter categories: `builtin`, `video`, `halftone-effect`, `still-image`

(luminosity-blend-mode background-image) [procedure]

Returns an image processor for image filter `luminosity-blend-mode` (`CILuminosityBlendMode`). Uses the hue and saturation of the background with the luminance of the source image. This mode creates an effect that is inverse to the effect created by the “Color Blend Mode” filter.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(masked-variable-blur mask radius) [procedure]

Returns an image processor for image filter `masked-variable-blur` (`CIMaskedVariableBlur`). Blurs an image according to the brightness levels in a mask image.

- mask (`abstract-image/CIImage`): The mask image that determines how much to blur the image. The mask’s green channel value from 0.0 to 1.0 determines if the image is not blurred or blurred by the full radius.
- radius (`scalar/NSNumber`): A value that governs the maximum blur radius to apply.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(mask-to-alpha)

Returns an image processor for image filter `mask-to-alpha` (`CIMaskToAlpha`). Converts a grayscale image to a white image that is masked by alpha. The white values from the source image produce the inside of the mask; the black values become completely transparent.

Filter categories: `builtin`, `video`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(maximum-component)

Returns an image processor for image filter `maximum-component` (`CIMaximumComponent`). Converts an image to grayscale using the maximum of the three color components.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(maximum-compositing background-image) [procedure]

Returns an image processor for image filter `maximum-compositing` (`CIMaximumCompositing`). Computes the maximum value, by color component, of two input images and creates an output image using the maximum values. This is similar to dodging.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(maximum-scale-transform scale aspect-ratio) [procedure]

Returns an image processor for image filter `maximum-scale-transform` (`CIMaximumScaleTransform`). Produces a scaled version of a source image that uses the maximum of neighboring pixels instead of linear averaging.

- scale (`scalar/NSNumber`): The scaling factor to use on the image. Values less than 1.0 scale down the images. Values greater than 1.0 scale up the image.
- aspect-ratio (`scalar/NSNumber`): The additional horizontal scaling factor to use on the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(median-filter)

Returns an image processor for image filter `median-filter` (`CIMedianFilter`). Computes the median value for a group of neighboring pixels and replaces each pixel value with the median. The effect is to reduce noise.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(minimum-component)

Returns an image processor for image filter `minimum-component` (`CIMinimumComponent`). Converts an image to grayscale using the minimum of the three color components.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(minimum-compositing background-image) [procedure]

Returns an image processor for image filter `minimum-compositing` (`CIMinimumCompositing`). Computes the minimum value, by color component, of two input images and creates an output image using the minimum values. This is similar to burning.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(mix background-image amount) [procedure]

Returns an image processor for image filter `mix` (`CIMix`). Uses an amount parameter to interpolate between an image and a background image. When value is 0.0 or less, the result is the background image. When the value is 1.0 or more, the result is the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.
- amount (`scalar/NSNumber`): The amount of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(mod-transition target-image center time angle radius compression) [procedure]

Returns an image processor for image filter `mod-transition` (`CIModTransition`). Transitions from one image to another by revealing the target image through irregularly shaped holes.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- angle (`angle/NSNumber`): The angle in radians of the mod hole pattern.
- radius (`distance/NSNumber`): The radius of the undistorted holes in the pattern.
- compression (`distance/NSNumber`): The amount of stretching applied to the mod hole pattern. Holes in the center are not distorted as much as those at the edge of the image.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(morphology-gradient radius) [procedure]

Returns an image processor for image filter `morphology-gradient` (`CIMorphologyGradient`). Finds the edges of an image by returning the difference between the morphological minimum and maximum operations to the image.

- radius (`distance/NSNumber`): The desired radius of the circular morphological operation to the image.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(morphology-maximum radius) [procedure]

Returns an image processor for image filter `morphology-maximum` (`CIMorphologyMaximum`). Lightens areas of an image by applying a circular morphological maximum operation to the image.

- radius (`distance/NSNumber`): The desired radius of the circular morphological operation to the image.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(morphology-minimum radius) [procedure]

Returns an image processor for image filter `morphology-minimum` (`CIMorphologyMinimum`). Darkens areas of an image by applying a circular morphological maximum operation to the image.

- radius (`distance/NSNumber`): The desired radius of the circular morphological operation to the image.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(morphology-rectangle-maximum width height) [procedure]

Returns an image processor for image filter `morphology-rectangle-maximum` (`CIMorphologyRectangleMaximum`). Lightens areas of an image by applying a rectangular morphological maximum operation to the image.

- width (`integer/NSNumber`): The width in pixels of the morphological operation. The value will be rounded to the nearest odd integer.
- height (`integer/NSNumber`): The height in pixels of the morphological operation. The value will be rounded to the nearest odd integer.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(morphology-rectangle-minimum width height) [procedure]

Returns an image processor for image filter `morphology-rectangle-minimum` (`CIMorphologyRectangleMinimum`). Darkens areas of an image by applying a rectangular morphological maximum operation to the image.

- width (`integer/NSNumber`): The width in pixels of the morphological operation. The value will be rounded to the nearest odd integer.
- height (`integer/NSNumber`): The height in pixels of the morphological operation. The value will be rounded to the nearest odd integer.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(motion-blur radius angle) [procedure]

Returns an image processor for image filter `motion-blur` (`CIMotionBlur`). Blurs an image to simulate the effect of using a camera that moves a specified angle and distance while capturing the image.

- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the blur. The larger the radius, the blurrier the result.
- angle (`angle/NSNumber`): The angle in radians of the motion determines which direction the blur smears.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(multiply-blend-mode background-image) [procedure]

Returns an image processor for image filter `multiply-blend-mode` (`CIMultiplyBlendMode`). Multiplies the source image samples with the background image samples. This results in colors that are at least as dark as either of the two contributing sample colors.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(multiply-compositing background-image) [procedure]

Returns an image processor for image filter `multiply-compositing` (`CIMultiplyCompositing`). Multiplies the color component of two input images and creates an output image using the multiplied values. This filter is typically used to add a spotlight or similar lighting effect to an image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(nine-part-stretched breakpoint0 breakpoint1 grow-amount) [procedure]

Returns an image processor for image filter `nine-part-stretched` (`CINinePartStretched`). Distorts an image by stretching an image based on two input breakpoints.

- breakpoint0 (`point/CIVector`): Lower left corner of image to retain before stretching begins.
- breakpoint1 (`point/CIVector`): Upper right corner of image to retain after stretching ends.
- grow-amount (`offset/CIVector`): Vector indicating how much image should grow in pixels in both dimensions.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(nine-part-tiled breakpoint0 breakpoint1 grow-amount flip-y-tiles) [procedure]

Returns an image processor for image filter `nine-part-tiled` (`CINinePartTiled`). Distorts an image by tiling an image based on two input breakpoints.

- breakpoint0 (`point/CIVector`): Lower left corner of image to retain before tiling begins.
- breakpoint1 (`point/CIVector`): Upper right corner of image to retain after tiling ends.
- grow-amount (`offset/CIVector`): Vector indicating how much image should grow in pixels in both dimensions.
- flip-y-tiles (`boolean/NSNumber`): Indicates that Y-Axis flip should occur.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(noise-reduction noise-level sharpness) [procedure]

Returns an image processor for image filter `noise-reduction` (`CINoiseReduction`). Reduces noise using a threshold value to define what is considered noise. Small changes in luminance below that value are considered noise and get a noise reduction treatment, which is a local blur. Changes above the threshold value are considered edges, so they are sharpened.

- noise-level (`scalar/NSNumber`): The amount of noise reduction. The larger the value, the more noise reduction.
- sharpness (`scalar/NSNumber`): The sharpness of the final image. The larger the value, the sharper the result.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`

(op-tile center scale angle width) [procedure]

Returns an image processor for image filter `op-tile` (`CIOpTile`). Segments an image, applying any specified scaling and rotation, and then assembles the image again to give an op art appearance.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- scale (`scalar/NSNumber`): The scale determines the number of tiles in the effect.
- angle (`angle/NSNumber`): The angle in radians of a tile.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(overlay-blend-mode background-image) [procedure]

Returns an image processor for image filter `overlay-blend-mode` (`CIOverlayBlendMode`). Either multiplies or screens the source image samples with the background image samples, depending on the background color. The result is to overlay the existing image samples while preserving the highlights and shadows of the background. The background color mixes with the source image to reflect the lightness or darkness of the background.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(page-curl-transition target-image backside-image shading-image extent time angle radius) [procedure]

Returns an image processor for image filter `page-curl-transition` (`CIPageCurlTransition`). Transitions from one image to another by simulating a curling page, revealing the new image as the page curls.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- backside-image (`abstract-image/CIImage`): The image that appears on the back of the source image, as the page curls to reveal the target image.
- shading-image (`abstract-image/CIImage`): An image that looks like a shaded sphere enclosed in a square image.
- extent (`rect/CIVector`): The extent of the effect.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- angle (`angle/NSNumber`): The angle in radians of the curling page.
- radius (`distance/NSNumber`): The radius of the curl.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(page-curl-with-shadow-transition target-image backside-image extent time angle radius shadow-size shadow-amount shadow-extent) [procedure]

Returns an image processor for image filter `page-curl-with-shadow-transition` (`CIPageCurlWithShadowTransition`). Transitions from one image to another by simulating a curling page, revealing the new image as the page curls.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- backside-image (`abstract-image/CIImage`): The image that appears on the back of the source image, as the page curls to reveal the target image.
- extent (`rect/CIVector`): The extent of the effect.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- angle (`angle/NSNumber`): The angle in radians of the curling page.
- radius (`distance/NSNumber`): The radius of the curl.
- shadow-size (`distance/NSNumber`): The maximum size in pixels of the shadow.
- shadow-amount (`distance/NSNumber`): The strength of the shadow.
- shadow-extent (`rect/CIVector`): The rectagular portion of input image that will cast a shadow.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(palette-centroid palette-image perceptual) [procedure]

Returns an image processor for image filter `palette-centroid` (`CIPaletteCentroid`). Calculate the mean (x,y) image coordinates of a color palette.

- palette-image (`abstract-image/CIImage`): The input color palette, obtained using “CIKMeans“ filter.
- perceptual (`boolean/NSNumber`): Specifies whether the color palette should be applied in a perceptual color space.

Filter categories: `builtin`, `video`, `color-effect`, `still-image`

(palettize palette-image perceptual) [procedure]

Returns an image processor for image filter `palettize` (`CIPalettize`). Paint an image from a color palette obtained using “CIKMeans“.

- palette-image (`abstract-image/CIImage`): The input color palette, obtained using “CIKMeans“ filter.
- perceptual (`boolean/NSNumber`): Specifies whether the color palette should be applied in a perceptual color space.

Filter categories: `builtin`, `video`, `color-effect`, `still-image`

(parallelogram-tile center angle acute-angle width) [procedure]

Returns an image processor for image filter `parallelogram-tile` (`CIParallelogramTile`). Warps an image by reflecting it in a parallelogram, and then tiles the result.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- acute-angle (`angle/NSNumber`): The primary angle for the repeating parallelogram tile. Small values create thin diamond tiles, and higher values create fatter parallelogram tiles.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(person-segmentation quality-level) [procedure]

Returns an image processor for image filter `person-segmentation` (`CIPersonSegmentation`). Returns a segmentation mask that is red in the portions of an image that are likely to be persons. The returned image may have a different size and aspect ratio from the input image.

- quality-level (`integer/NSNumber`): Determines the size and quality of the resulting segmentation mask. The value can be a number where 0 is accurate, 1 is balanced, and 2 is fast.

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(perspective-correction top-left top-right bottom-right bottom-left crop) [procedure]

Returns an image processor for image filter `perspective-correction` (`CIPerspectiveCorrection`). Apply a perspective correction to an image.

- top-left (`point/CIVector`): The top left coordinate to be perspective corrected.
- top-right (`point/CIVector`): The top right coordinate to be perspective corrected.
- bottom-right (`point/CIVector`): The bottom right coordinate to be perspective corrected.
- bottom-left (`point/CIVector`): The bottom left coordinate to be perspective corrected.
- crop (`boolean/NSNumber`)

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(perspective-rotate focal-length pitch yaw roll) [procedure]

Returns an image processor for image filter `perspective-rotate` (`CIPerspectiveRotate`). Apply a homogenous rotation transform to an image.

- focal-length (`scalar/NSNumber`): 35mm equivalent focal length of the input image.
- pitch (`angle/NSNumber`): Pitch angle in radians.
- yaw (`angle/NSNumber`): Yaw angle in radians.
- roll (`angle/NSNumber`): Roll angle in radians.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(perspective-tile top-left top-right bottom-right bottom-left) [procedure]

Returns an image processor for image filter `perspective-tile` (`CIPerspectiveTile`). Applies a perspective transform to an image and then tiles the result.

- top-left (`point/CIVector`): The top left coordinate of a tile.
- top-right (`point/CIVector`): The top right coordinate of a tile.
- bottom-right (`point/CIVector`): The bottom right coordinate of a tile.
- bottom-left (`point/CIVector`): The bottom left coordinate of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(perspective-transform top-left top-right bottom-right bottom-left) [procedure]

Returns an image processor for image filter `perspective-transform` (`CIPerspectiveTransform`). Alters the geometry of an image to simulate the observer changing viewing position. You can use the perspective filter to skew an image.

- top-left (`point/CIVector`): The top left coordinate to map the image to.
- top-right (`point/CIVector`): The top right coordinate to map the image to.
- bottom-right (`point/CIVector`): The bottom right coordinate to map the image to.
- bottom-left (`point/CIVector`): The bottom left coordinate to map the image to.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(perspective-transform-with-extent extent top-left top-right bottom-right bottom-left) [procedure]

Returns an image processor for image filter `perspective-transform-with-extent` (`CIPerspectiveTransformWithExtent`). Alters the geometry of an image to simulate the observer changing viewing position. You can use the perspective filter to skew an image.

- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- top-left (`point/CIVector`): The top left coordinate to map the image to.
- top-right (`point/CIVector`): The top right coordinate to map the image to.
- bottom-right (`point/CIVector`): The bottom right coordinate to map the image to.
- bottom-left (`point/CIVector`): The bottom left coordinate to map the image to.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(photo-effect-chrome extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-chrome` (`CIPhotoEffectChrome`). Apply a “Chrome” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-fade extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-fade` (`CIPhotoEffectFade`). Apply a “Fade” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-instant extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-instant` (`CIPhotoEffectInstant`). Apply an “Instant” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-mono extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-mono` (`CIPhotoEffectMono`). Apply a “Mono” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-noir extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-noir` (`CIPhotoEffectNoir`). Apply a “Noir” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-process extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-process` (`CIPhotoEffectProcess`). Apply a “Process” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-tonal extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-tonal` (`CIPhotoEffectTonal`). Apply a “Tonal” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(photo-effect-transfer extrapolate) [procedure]

Returns an image processor for image filter `photo-effect-transfer` (`CIPhotoEffectTransfer`). Apply a “Transfer” style effect to an image.

- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(pinch-distortion center radius scale) [procedure]

Returns an image processor for image filter `pinch-distortion` (`CIPinchDistortion`). Creates a rectangular-shaped area that pinches source pixels inward, distorting those pixels closest to the rectangle the most.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
- scale (`scalar/NSNumber`): The amount of pinching. A value of 0.0 has no effect. A value of 1.0 is the maximum pinch.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(pin-light-blend-mode background-image) [procedure]

Returns an image processor for image filter `pin-light-blend-mode` (`CIPinLightBlendMode`). Unpremultiplies the source and background image sample color, combines them according to the relative difference, and then blends the result with the background according to the PDF basic compositing formula. Source image values that are brighter than the destination will produce an output that is lighter than the destination. Source image values that are darker than the destination will produce an output that is darker than the destination.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(pixellate center scale) [procedure]

Returns an image processor for image filter `pixellate` (`CIPixellate`). Makes an image blocky.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- scale (`distance/NSNumber`): The scale determines the size of the squares. Larger values result in larger squares.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(pointillize radius center) [procedure]

Returns an image processor for image filter `pointillize` (`CIPointillize`). Renders the source image in a pointillistic style.

- radius (`distance/NSNumber`): The radius of the circles in the resulting pattern.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(radial-gradient center radius0 radius1 color0 color1) [procedure]

Returns an image generator for image filter `radial-gradient` (`CIRadialGradient`). Generates a gradient that varies radially between two circles having the same center. It is valid for one of the two circles to have a radius of 0.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius0 (`distance/NSNumber`): The radius of the starting circle to use in the gradient.
- radius1 (`distance/NSNumber`): The radius of the ending circle to use in the gradient.
- color0 (`color/CIColor`): The first color to use in the gradient.
- color1 (`color/CIColor`): The second color to use in the gradient.

Filter categories: `builtin`, `video`, `gradient`, `high-dynamic-range`, `still-image`

(ripple-transition target-image shading-image center extent time width scale) [procedure]

Returns an image processor for image filter `ripple-transition` (`CIRippleTransition`). Transitions from one image to another by creating a circular wave that expands from the center point, revealing the new image in the wake of the wave.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- shading-image (`abstract-image/CIImage`): An image that looks like a shaded sphere enclosed in a square image.
- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- extent (`rect/CIVector`): A rectangle that defines the extent of the effect.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- width (`distance/NSNumber`): The width of the ripple.
- scale (`scalar/NSNumber`): A value that determines whether the ripple starts as a bulge (higher value) or a dimple (lower value).

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(row-average extent) [procedure]

Returns an image processor for image filter `row-average` (`CIRowAverage`). Calculates the average color for each row of the specified area in an image, returning the result in a 1D image.

- extent (`rect/CIVector`): A rectangle that specifies the subregion of the image that you want to process.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `reduction`, `still-image`

(saliency-map-filter)

Returns an image processor for image filter `saliency-map-filter` (`CISaliencyMapFilter`). Generates output image as a saliency map of the input image.

Filter categories: `builtin`, `video`, `stylize`, `still-image`

(sample-nearest)

Returns an image processor for image filter `sample-nearest` (`CISampleNearest`). Produces an image that forces the image sampling to “nearest” mode instead of the default “linear” mode. This filter can be used to alter the behavior of filters that alter the geometry of an image. The output of this filter should be passed as the input to the geometry filter. For example, passing the output of this filter to CIAffineTransform can be used to produce a pixelated upsampled image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(saturation-blend-mode background-image) [procedure]

Returns an image processor for image filter `saturation-blend-mode` (`CISaturationBlendMode`). Uses the luminance and hue values of the background with the saturation of the source image. Areas of the background that have no saturation (that is, pure gray areas) do not produce a change.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(screen-blend-mode background-image) [procedure]

Returns an image processor for image filter `screen-blend-mode` (`CIScreenBlendMode`). Multiplies the inverse of the source image samples with the inverse of the background image samples. This results in colors that are at least as light as either of the two contributing sample colors.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(sepia-tone intensity) [procedure]

Returns an image processor for image filter `sepia-tone` (`CISepiaTone`). Maps the colors of an image to various shades of brown.

- intensity (`scalar/NSNumber`): The intensity of the sepia effect. A value of 1.0 creates a monochrome sepia image. A value of 0.0 has no effect on the image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(shaded-material shading-image scale) [procedure]

Returns an image processor for image filter `shaded-material` (`CIShadedMaterial`). Produces a shaded image from a height field. The height field is defined to have greater heights with lighter shades, and lesser heights (lower areas) with darker shades. You can combine this filter with the “Height Field From Mask” filter to produce quick shadings of masks, such as text.

- shading-image (`abstract-image/CIImage`): The image to use as the height field. The resulting image has greater heights with lighter shades, and lesser heights (lower areas) with darker shades.
- scale (`distance/NSNumber`): The scale of the effect. The higher the value, the more dramatic the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(sharpen-luminance sharpness radius) [procedure]

Returns an image processor for image filter `sharpen-luminance` (`CISharpenLuminance`). Increases image detail by sharpening. It operates on the luminance of the image; the chrominance of the pixels remains unaffected.

- sharpness (`scalar/NSNumber`): The amount of sharpening to apply. Larger values are sharper.
- radius (`scalar/NSNumber`): The distance from the center of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `sharpen`, `still-image`

(sixfold-reflected-tile center angle width) [procedure]

Returns an image processor for image filter `sixfold-reflected-tile` (`CISixfoldReflectedTile`). Produces a tiled image from a source image by applying a 6-way reflected symmetry.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(sixfold-rotated-tile center angle width) [procedure]

Returns an image processor for image filter `sixfold-rotated-tile` (`CISixfoldRotatedTile`). Produces a tiled image from a source image by rotating the source at increments of 60 degrees.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(smooth-linear-gradient point0 point1 color0 color1) [procedure]

Returns an image generator for image filter `smooth-linear-gradient` (`CISmoothLinearGradient`). Generates a gradient that varies along a linear axis between two defined endpoints.

- point0 (`point/CIVector`): The starting position of the gradient – where the first color begins.
- point1 (`point/CIVector`): The ending position of the gradient – where the second color begins.
- color0 (`color/CIColor`): The first color to use in the gradient.
- color1 (`color/CIColor`): The second color to use in the gradient.

Filter categories: `builtin`, `video`, `gradient`, `high-dynamic-range`, `still-image`

(sobel-gradients)

Returns an image processor for image filter `sobel-gradients` (`CISobelGradients`). Applies multichannel 3 by 3 Sobel gradient filter to an image. The resulting image has maximum horizontal gradient in the red channel and the maximum vertical gradient in the green channel. The gradient values can be positive or negative.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(soft-light-blend-mode background-image) [procedure]

Returns an image processor for image filter `soft-light-blend-mode` (`CISoftLightBlendMode`). Either darkens or lightens colors, depending on the source image sample color. If the source image sample color is lighter than 50% gray, the background is lightened, similar to dodging. If the source image sample color is darker than 50% gray, the background is darkened, similar to burning. If the source image sample color is equal to 50% gray, the background is not changed. Image samples that are equal to pure black or pure white produce darker or lighter areas, but do not result in pure black or white. The overall effect is similar to what you would achieve by shining a diffuse spotlight on the source image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(source-atop-compositing background-image) [procedure]

Returns an image processor for image filter `source-atop-compositing` (`CISourceAtopCompositing`). Places the source image over the background image, then uses the luminance of the background image to determine what to show. The composite shows the background image and only those portions of the source image that are over visible parts of the background.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(source-in-compositing background-image) [procedure]

Returns an image processor for image filter `source-in-compositing` (`CISourceInCompositing`). Uses the second image to define what to leave in the source image, effectively cropping the image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(source-out-compositing background-image) [procedure]

Returns an image processor for image filter `source-out-compositing` (`CISourceOutCompositing`). Uses the second image to define what to take out of the first image.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(source-over-compositing background-image) [procedure]

Returns an image processor for image filter `source-over-compositing` (`CISourceOverCompositing`). Places the second image over the first.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `high-dynamic-range`, `interlaced`, `still-image`, `non-square-pixels`

(spot-color center-color1 replacement-color1 closeness1 contrast1 center-color2 replacement-color2 closeness2 contrast2 center-color3 replacement-color3 closeness3 contrast3) [procedure]

Returns an image processor for image filter `spot-color` (`CISpotColor`). Replaces one or more color ranges with spot colors.

- center-color1 (`color/CIColor`): The center value of the first color range to replace.
- replacement-color1 (`color/CIColor`): A replacement color for the first color range.
- closeness1 (`scalar/NSNumber`): A value that indicates how close the first color must match before it is replaced.
- contrast1 (`scalar/NSNumber`): The contrast of the first replacement color.
- center-color2 (`color/CIColor`): The center value of the second color range to replace.
- replacement-color2 (`color/CIColor`): A replacement color for the second color range.
- closeness2 (`scalar/NSNumber`): A value that indicates how close the second color must match before it is replaced.
- contrast2 (`scalar/NSNumber`): The contrast of the second replacement color.
- center-color3 (`color/CIColor`): The center value of the third color range to replace.
- replacement-color3 (`color/CIColor`): A replacement color for the third color range.
- closeness3 (`scalar/NSNumber`): A value that indicates how close the third color must match before it is replaced.
- contrast3 (`scalar/NSNumber`): The contrast of the third replacement color.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(spot-light light-position light-points-at brightness concentration color) [procedure]

Returns an image processor for image filter `spot-light` (`CISpotLight`). Applies a directional spotlight effect to an image.

- light-position (`coordinate-3d/CIVector`): The x and y position of the spotlight.
- light-points-at (`coordinate-3d/CIVector`): The x and y position that the spotlight points at.
- brightness (`distance/NSNumber`): The brightness of the spotlight.
- concentration (`scalar/NSNumber`): The spotlight size. The smaller the value, the more tightly focused the light beam.
- color (`opaque-color/CIColor`): The color of the spotlight.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `stylize`, `still-image`

(srgbtone-curve-to-linear)

Returns an image processor for image filter `srgbtone-curve-to-linear` (`CISRGBToneCurveToLinear`). Converts an image in sRGB space to linear space.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(straighten-filter angle) [procedure]

Returns an image processor for image filter `straighten-filter` (`CIStraightenFilter`). Rotates a source image by the specified angle in radians. The image is then scaled and cropped so that the rotated image fits the extent of the input image.

- angle (`angle/NSNumber`): The angle in radians of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `still-image`, `geometry-adjustment`

(stretch-crop size crop-amount center-stretch-amount) [procedure]

Returns an image processor for image filter `stretch-crop` (`CIStretchCrop`). Distorts an image by stretching and or cropping to fit a target size.

- size (`point/CIVector`): The size in pixels of the output image.
- crop-amount (`scalar/NSNumber`): Determines if and how much cropping should be used to achieve the target size. If value is 0 then only stretching is used. If 1 then only cropping is used.
- center-stretch-amount (`scalar/NSNumber`): Determine how much the center of the image is stretched if stretching is used. If value is 0 then the center of the image maintains the original aspect ratio. If 1 then the image is stretched uniformly.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(subtract-blend-mode background-image) [procedure]

Returns an image processor for image filter `subtract-blend-mode` (`CISubtractBlendMode`). Unpremultiplies the source and background image sample colors, subtracts the source from the background, and then blends the result with the background according to the PDF basic compositing formula. Source image values that are black produces output that is the same as the background. Source image values that are non-black darken the background color values.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(swipe-transition target-image extent color time angle width opacity) [procedure]

Returns an image processor for image filter `swipe-transition` (`CISwipeTransition`). Transitions from one image to another by simulating a swiping action.

- target-image (`abstract-image/CIImage`): The target image for a transition.
- extent (`rect/CIVector`): The extent of the effect.
- color (`opaque-color/CIColor`): The color of the swipe.
- time (`time/NSNumber`): The parametric time of the transition. This value drives the transition from start (at time 0) to end (at time 1).
- angle (`angle/NSNumber`): The angle in radians of the swipe.
- width (`distance/NSNumber`): The width of the swipe.
- opacity (`scalar/NSNumber`): The opacity of the swipe.

Filter categories: `builtin`, `video`, `transition`, `high-dynamic-range`, `still-image`

(temperature-and-tint neutral target-neutral) [procedure]

Returns an image processor for image filter `temperature-and-tint` (`CITemperatureAndTint`). Adapt the reference white point for an image.

- neutral (`offset/CIVector`): A vector containing the source white point defined by color temperature and tint or chromaticity (x,y).
- target-neutral (`offset/CIVector`): A vector containing the desired white point defined by color temperature and tint or chromaticity (x,y).

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(thermal)

Returns an image processor for image filter `thermal` (`CIThermal`). Apply a “Thermal” style effect to an image.

Filter categories: `builtin`, `video`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(tone-curve point0 point1 point2 point3 point4 extrapolate) [procedure]

Returns an image processor for image filter `tone-curve` (`CIToneCurve`). Adjusts tone response of the R, G, and B channels of an image. The input points are five x,y values that are interpolated using a spline curve. The curve is applied in a perceptual (gamma 2) version of the working space.

- point0 (`offset/CIVector`)
- point1 (`offset/CIVector`)
- point2 (`offset/CIVector`)
- point3 (`offset/CIVector`)
- point4 (`offset/CIVector`)
- extrapolate (`boolean/NSNumber`): If true, then the color effect will be extrapolated if the input image contains RGB component values outside the range 0.0 to 1.0.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(tone-map-headroom source-headroom target-headroom) [procedure]

Returns an image processor for image filter `tone-map-headroom` (`CIToneMapHeadroom`). Apply a global tone curve to an image that reduces colors from a source headroom value to a target headroom value.

- source-headroom (`scalar/NSNumber`): Specifies the headroom of the input image.
- target-headroom (`scalar/NSNumber`): Specifies the target headroom of the output image.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(torus-lens-distortion center radius width refraction) [procedure]

Returns an image processor for image filter `torus-lens-distortion` (`CITorusLensDistortion`). Creates a torus-shaped lens and distorts the portion of the image over which the lens is placed.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The outer radius of the torus.
- width (`distance/NSNumber`): The width of the ring.
- refraction (`scalar/NSNumber`): The refraction of the glass.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(triangle-kaleidoscope point size rotation decay) [procedure]

Returns an image processor for image filter `triangle-kaleidoscope` (`CITriangleKaleidoscope`). Maps a triangular portion of image to a triangular area and then generates a kaleidoscope effect.

- point (`point/CIVector`): The x and y position to use as the center of the triangular area in the input image.
- size (`scalar/NSNumber`): The size in pixels of the triangle.
- rotation (`angle/NSNumber`): Rotation angle in radians of the triangle.
- decay (`scalar/NSNumber`): The decay determines how fast the color fades from the center triangle.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(triangle-tile center angle width) [procedure]

Returns an image processor for image filter `triangle-tile` (`CITriangleTile`). Maps a triangular portion of image to a triangular area and then tiles the result.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(twelvefold-reflected-tile center angle width) [procedure]

Returns an image processor for image filter `twelvefold-reflected-tile` (`CITwelvefoldReflectedTile`). Produces a tiled image from a source image by applying a 12-way reflected symmetry.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- angle (`angle/NSNumber`): The angle in radians of the tiled pattern.
- width (`distance/NSNumber`): The width of a tile.

Filter categories: `tile-effect`, `builtin`, `video`, `high-dynamic-range`, `still-image`

(twirl-distortion center radius angle) [procedure]

Returns an image processor for image filter `twirl-distortion` (`CITwirlDistortion`). Rotates pixels around a point to give a twirling effect. You can specify the number of rotations as well as the center and radius of the effect.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
- angle (`angle/NSNumber`): The angle in radians of the twirl. Values can be positive or negative.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(unsharp-mask radius intensity) [procedure]

Returns an image processor for image filter `unsharp-mask` (`CIUnsharpMask`). Increases the contrast of the edges between pixels of different colors in an image.

- radius (`distance/NSNumber`): The radius around a given pixel to apply the unsharp mask. The larger the radius, the more of the image is affected.
- intensity (`scalar/NSNumber`): The intensity of the effect. The larger the value, the more contrast in the affected area.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `sharpen`, `still-image`

(vibrance amount) [procedure]

Returns an image processor for image filter `vibrance` (`CIVibrance`). Adjusts the saturation of an image while keeping pleasing skin tones.

- amount (`scalar/NSNumber`): The amount to adjust the saturation.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(vignette intensity radius) [procedure]

Returns an image processor for image filter `vignette` (`CIVignette`). Applies a vignette shading to the corners of an image.

- intensity (`scalar/NSNumber`): The intensity of the effect.
- radius (`scalar/NSNumber`): The distance from the center of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`

(vignette-effect center radius intensity falloff) [procedure]

Returns an image processor for image filter `vignette-effect` (`CIVignetteEffect`). Applies a vignette shading to the corners of an image.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The distance from the center of the effect.
- intensity (`scalar/NSNumber`): The intensity of the effect.
- falloff (`scalar/NSNumber`): The falloff of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `interlaced`, `color-effect`, `still-image`

(vivid-light-blend-mode background-image) [procedure]

Returns an image processor for image filter `vivid-light-blend-mode` (`CIVividLightBlendMode`). A blend mode that is a combination of color burn and color dodge blend modes.

- background-image (`abstract-image/CIImage`): The image to use as a background image.

Filter categories: `composite-operation`, `builtin`, `video`, `interlaced`, `still-image`, `non-square-pixels`

(vortex-distortion center radius angle) [procedure]

Returns an image processor for image filter `vortex-distortion` (`CIVortexDistortion`). Rotates pixels around a point to simulate a vortex. You can specify the number of rotations as well the center and radius of the effect.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- radius (`distance/NSNumber`): The radius determines how many pixels are used to create the distortion. The larger the radius, the wider the extent of the distortion.
- angle (`angle/NSNumber`): The angle in radians of the effect.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `distortion-effect`, `still-image`

(white-point-adjust color) [procedure]

Returns an image processor for image filter `white-point-adjust` (`CIWhitePointAdjust`). Adjusts the reference white point for an image and maps all colors in the source using the new reference.

- color (`color/CIColor`): A color to use as the white point.

Filter categories: `builtin`, `video`, `high-dynamic-range`, `color-adjustment`, `interlaced`, `still-image`, `non-square-pixels`

(xray)

Returns an image processor for image filter `xray` (`CIXRay`). Apply an “XRay” style effect to an image.

Filter categories: `builtin`, `video`, `interlaced`, `color-effect`, `still-image`, `non-square-pixels`

(zoom-blur center amount) [procedure]

Returns an image processor for image filter `zoom-blur` (`CIZoomBlur`). Simulates the effect of zooming the camera while capturing the image.

- center (`point/CIVector`): The center of the effect as x and y pixel coordinates.
- amount (`distance/NSNumber`): The zoom-in amount. Larger values result in more zooming in.

Filter categories: `builtin`, `blur`, `video`, `high-dynamic-range`, `still-image`