<!--
{
  "documentType" : "article",
  "framework" : "Quartz",
  "identifier" : "/documentation/Quartz/imagekit",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "ImageKit"
}
-->

# ImageKit

## Topics

### Classes

[`IKCameraDeviceView`](/documentation/Quartz/IKCameraDeviceView)

The `IKCameraDeviceView` class displays the contents of the selected camera.

[`IKDeviceBrowserView`](/documentation/Quartz/IKDeviceBrowserView)

The `IKDeviceBrowserView` allows you to select a camera or scanner from a list of the available devices.

[`IKFilterBrowserPanel`](/documentation/Quartz/IKFilterBrowserPanel)

Presents a user interface for browsing filters.

[`IKFilterBrowserView`](/documentation/Quartz/IKFilterBrowserView)

The `IKFilterBrowserView` class is used as a container for the elements of an [`IKFilterBrowserPanel`](/documentation/Quartz/IKFilterBrowserPanel) object.

[`IKFilterUIView`](/documentation/Quartz/IKFilterUIView)

Input parameters for filtering core image filters.

[`IKImageBrowserCell`](/documentation/Quartz/IKImageBrowserCell)

A class used to display a cell.

[`IKImageEditPanel`](/documentation/Quartz/IKImageEditPanel)

The `IKImageEditPanel` class provides a panel, that is, a utility window that floats on top of document windows, optimized for image editing.

[`IKImageView`](/documentation/Quartz/IKImageView)

A view that allows displaying and minor editing of an image.

[`IKPictureTaker`](/documentation/Quartz/IKPictureTaker)

The `IKPictureTaker` class represents a panel that allows users to choose images by browsing the file system. The picture taker panel provides an Open Recent menu, supports image cropping, and supports taking snapshots from an iSight or other digital camera.

[`IKSaveOptions`](/documentation/Quartz/IKSaveOptions)

The `IKSaveOptions` class initializes, adds, and manages user interface options for saving image data.

[`IKScannerDeviceView`](/documentation/Quartz/IKScannerDeviceView)

The `IKScannerDeviceView` class displays a view that allows scanning. It can be customized by specifying the display mode. The delegate receives the scanned data and must implement the [`IKScannerDeviceViewDelegate`](/documentation/Quartz/IKScannerDeviceViewDelegate) protocol.

[`IKSlideshow`](/documentation/Quartz/IKSlideshow)

The `IKSlideshow` class encapsulates a data source and options for a slideshow.

### Protocols

[`IKCameraDeviceViewDelegate`](/documentation/Quartz/IKCameraDeviceViewDelegate)

The `IKCameraDeviceViewDelegate` protocol is adopted by the delegate of the [`IKCameraDeviceView`](/documentation/Quartz/IKCameraDeviceView) class. It allows downloading of camera content, handling selection changes, and handling errors.

[`IKDeviceBrowserViewDelegate`](/documentation/Quartz/IKDeviceBrowserViewDelegate)

The `IKDeviceBrowserViewDelegate` defines the methods that the delegate of the [`IKDeviceBrowserView`](/documentation/Quartz/IKDeviceBrowserView) class can implement. All the methods are optional.

[`IKFilterCustomUIProvider`](/documentation/Quartz/IKFilterCustomUIProvider)

A protocol used to provide a custom UI.

[IKImageBrowserDataSource Protocol](/documentation/Quartz/ikimagebrowserdatasource-protocol)

The `IKImageBrowserDataSource` informal protocol declares the methods that an instance of the [`IKImageBrowserView`](/documentation/Quartz/IKImageBrowserView)  class uses to access the contents of its data source object.

[IKImageBrowserDelegate Protocol](/documentation/Quartz/ikimagebrowserdelegate-protocol)

The `IKImageBrowserDelegate` is an informal protocol for the delegate of an [`IKImageBrowserView`](/documentation/Quartz/IKImageBrowserView) object. You can implement these methods to perform custom tasks when in response to events in the image browser view.

[IKImageBrowserItem Protocol](/documentation/Quartz/ikimagebrowseritem-protocol)

The `IKImageBrowserItem` informal protocol declares the methods that an instance of the [`IKImageBrowserView`](/documentation/Quartz/IKImageBrowserView) class uses to access the contents of its data source for a given item. Some of the methods in this protocol are needed frequently, so you should implement them efficiently.

[`IKImageEditPanelDataSource`](/documentation/Quartz/IKImageEditPanelDataSource)

The `IKImageEditPanelDataSource` protocol describes the methods that an [`IKImageEditPanel`](/documentation/Quartz/IKImageEditPanel) object uses to access the contents of its data source object.

[`IKScannerDeviceViewDelegate`](/documentation/Quartz/IKScannerDeviceViewDelegate)

The `IKScannerDeviceViewDelegate` protocol defines the delegate protocol that the [`IKScannerDeviceView`](/documentation/Quartz/IKScannerDeviceView) delegate must conform to.

[`IKSlideshowDataSource`](/documentation/Quartz/IKSlideshowDataSource)

The `IKSlideshowDataSource` protocol describes the methods that an [`IKSlideshow`](/documentation/Quartz/IKSlideshow) object uses to access the contents of its data source object.

### Informal Protocols

[`IKImageBrowserCellState`](/documentation/Quartz/IKImageBrowserCellState)

The possible states for the browser cell. These values are used by the [`cellState()`](/documentation/Quartz/IKImageBrowserCell/cellState()) method.

[`IKImageBrowserDropOperation`](/documentation/Quartz/IKImageBrowserDropOperation)

These constants specify the locations for dropping items onto the browser view. Used by the method [`setDrop(_:dropOperation:)`](/documentation/Quartz/IKImageBrowserView/setDrop(_:dropOperation:)).

### Extended Types

  <doc://com.apple.documentation/documentation/CoreImage/CIFilter-swift.class>

### Reference

[ImageKit Constants](/documentation/Quartz/imagekit-quartz-constants)

[Quartz Enumerations](/documentation/Quartz/quartz-enumerations)

### Deprecated symbols

[`IKImageBrowserView`](/documentation/Quartz/IKImageBrowserView)

A view for displaying and browsing a large collection of images and movies.



---

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