ImageCaptureCore lets you browse and import photos and media from cameras, scanners, and other connected image-capture devices on iOS, macOS, and visionOS. Use ICDeviceBrowser and its delegate to discover connected hardware, then work with an ICDevice such as an ICCameraDevice or ICScannerDevice to access its contents and capabilities. From a camera you enumerate ICCameraItem objects like ICCameraFile and ICCameraFolder and download them using options such as ICDownloadOption and ICUploadOption, while ICScannerDevice exposes scanning through types including ICScannerFunctionalUnitType, ICScannerBitDepth, and ICScannerFeature. Delegate protocols including ICCameraDeviceDelegate, ICScannerDeviceDelegate, and ICDeviceDelegate report device status, transfers, and results such as ICDeleteResult.
Device Discovery 2
Find and browse image-capture devices connected to the system.
- ClICDeviceBrowsermacOS 10.4+@class ICDeviceBrowser
- PrICDeviceBrowserDelegate@protocol ICDeviceBrowserDelegate <NSObject>
Devices 3
The base device type and the camera and scanner devices it represents.
- ClICDevicemacOS 10.4+@class ICDevice
- ClICCameraDevicemacOS 10.4+@class ICCameraDevice
- ClICScannerDevicemacOS 10.4+@class ICScannerDevice
Device Delegates 4
Protocols that report device connection state, contents, and transfer events.
- PrICDeviceDelegate@protocol ICDeviceDelegate <NSObject>
- PrICCameraDeviceDelegate@protocol ICCameraDeviceDelegate <ICDeviceDelegate>
- PrICCameraDeviceDownloadDelegate@protocol ICCameraDeviceDownloadDelegate <NSObject>
- PrICScannerDeviceDelegatemacOS 10.4+@protocol ICScannerDeviceDelegate <ICDeviceDelegate>
Camera Items 3
The files and folders that make up a camera's media contents.
- ClICCameraItemmacOS 10.4+@class ICCameraItem
- ClICCameraFilemacOS 10.4+@class ICCameraFile
- ClICCameraFoldermacOS 10.4+@class ICCameraFolder
Download, Upload & Metadata Options 6
Keys and option types that control how camera items are downloaded, uploaded, and described.
- StICDownloadOptionmacOS 10.4+Keys that specify options for downloading a file from a camera device.
- StICUploadOptionmacOS 10.4+Keys that specify options for uploading a file to a camera device.
- StICCameraItemMetadataOptionmacOS 10.15+Keys that specify options for requesting metadata from a camera item.
- StICCameraItemThumbnailOptionmacOS 10.15+Keys that specify options for requesting a thumbnail from a camera item.
- StICSessionOptionsmacOS 10.15+Options that configure a session opened with a device.
- StICDeviceLocationOptionsOptions that describe where and how a device is located.
Scanner Functional Units 8
The scanning hardware units and the modes they expose for acquiring images.
- ClICScannerFunctionalUnitmacOS 10.4+@class ICScannerFunctionalUnit
- ClICScannerFunctionalUnitFlatbedmacOS 10.4+@class ICScannerFunctionalUnitFlatbed
- ClICScannerFunctionalUnitDocumentFeedermacOS 10.4+@class ICScannerFunctionalUnitDocumentFeeder
- ClICScannerFunctionalUnitPositiveTransparencymacOS 10.4+@class ICScannerFunctionalUnitPositiveTransparency
- ClICScannerFunctionalUnitNegativeTransparencymacOS 10.4+@class ICScannerFunctionalUnitNegativeTransparency
- EnICScannerFunctionalUnitTypemacOS 10.4+@ICScannerFunctionalUnitType
- EnICScannerFunctionalUnitStatemacOS 10.4+@ICScannerFunctionalUnitState
- ClICScannerBandDatamacOS 10.4+An object that holds a band of image data delivered during a scan.
Scanner Features 6
Configurable scanner parameters and the value types that describe their ranges and options.
- ClICScannerFeaturemacOS 10.4+@class ICScannerFeature
- ClICScannerFeatureBooleanmacOS 10.4+@class ICScannerFeatureBoolean
- ClICScannerFeatureEnumerationmacOS 10.4+@class ICScannerFeatureEnumeration
- ClICScannerFeatureRangemacOS 10.4+@class ICScannerFeatureRange
- ClICScannerFeatureTemplatemacOS 10.4+@class ICScannerFeatureTemplate
- EnICScannerFeatureTypemacOS 10.4+@ICScannerFeatureType
Scanner Configuration 6
Enumerations that specify how a scanner acquires, formats, and transfers image data.
- EnICScannerTransferModemacOS 10.7+@ICScannerTransferMode
- EnICScannerMeasurementUnitmacOS 10.4+@ICScannerMeasurementUnit
- EnICScannerBitDepthmacOS 10.4+@ICScannerBitDepth
- EnICScannerColorDataFormatTypemacOS 10.4+@ICScannerColorDataFormatType
- EnICScannerPixelDataTypemacOS 10.4+@ICScannerPixelDataType
- EnICScannerDocumentTypemacOS 10.4+@ICScannerDocumentType
Device Classification 10
Constants that identify device types, transports, locations, status, and capabilities.
- EnICDeviceTypemacOS 10.4+@const ICDeviceType
- EnICDeviceTypeMaskmacOS 10.4+@const ICDeviceTypeMask
- EnICDeviceLocationTypemacOS 10.4+@const ICDeviceLocationType
- EnICDeviceLocationTypeMaskmacOS 10.4+@const ICDeviceLocationTypeMask
- StICDeviceTransportmacOS 10.4+Constants that identify the transport over which a device is connected.
- StICDeviceStatusA structure that describes the current status of a device.
- StICDeviceCapabilityConstants that describe the capabilities supported by a device.
- StICAuthorizationStatusmacOS 10.15+Constants that indicate the app's authorization to access image-capture devices.
- EnICMediaPresentationmacOS 10.11+@ICMediaPresentation
- EnICEXIFOrientationTypeConstants that specify the EXIF orientation of a captured image.
Results & Errors 11
Structures and codes that report the outcome of delete operations and other device errors.
- StICDeleteResultmacOS 10.15+A structure that reports the result of deleting items from a device.
- StICDeleteErrormacOS 10.15+An error type that describes a failure to delete items from a device.
- StICReturnConstants that represent the result codes returned by ImageCaptureCore operations.
- StICReturnObjectErrorAn error type that describes a failure involving a device or item object.
- StICReturnConnectionErrorAn error type that describes a failure to connect to a device.
- StICReturnDownloadErrorAn error type that describes a failure to download a file.
- StICReturnThumbnailErrorAn error type that describes a failure to retrieve a thumbnail.
- StICReturnMetadataErrorAn error type that describes a failure to retrieve metadata.
- StICReturnPTPDeviceErrorAn error type that describes a failure reported by a PTP camera device.
- StICLegacyReturnLegacy return codes retained for compatibility with earlier APIs.
- EnICReturnCodeOffsetConstants that define the base offsets for ImageCaptureCore return codes.