-
Notifications
You must be signed in to change notification settings - Fork 569
ImageIO iOS xcode27.0 b1
Alex Soto edited this page Jun 9, 2026
·
1 revision
#ImageIO.framework
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h 2026-04-24 21:46:19
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h 2026-05-21 07:57:01
@@ -15,6 +15,9 @@
CF_ASSUME_NONNULL_BEGIN
+/**
+ * Constants that indicate the result of animating an image sequence.
+ */
typedef CF_ENUM(OSStatus, CGImageAnimationStatus) {
kCGImageAnimationStatus_ParameterError = -22140, /* NULL or invalid parameter passed to API */
kCGImageAnimationStatus_CorruptInputImage = -22141, /* An image cannot be read from the given source */
@@ -26,34 +29,73 @@
/* Starts the animation at the given index. Defaults to 0
* Value is a CFNumber
*/
+/**
+ * A property that specifies the index of the first frame of an animation.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> that contains an unsigned integer. To override the start index value in the image file, include this property in the options dictionary when animating an image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAnimationStartIndex IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
/* The value of this key overrides the `delay time` specified by the image
* Value is a CFNumber of kCFNumberDoubleType.
*/
+/**
+ * The number of seconds to wait before displaying the next image in an animated sequence.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value. To override the delay time value in the image file, include this property in the options dictionary when animating an image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAnimationDelayTime IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
/* The value of this key overrides the `loop count` specified by the image
* Value is a CFNumber; kCFNumberPositiveInfinity may be used.
*/
+/**
+ * The number of times to repeat the animated sequence.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> that contains an unsigned integer. To override the loop count value in the image file, include this property in the options dictionary when animating an image.
+ *
+ * You may specify <doc://com.apple.documentation/documentation/corefoundation/kcfnumberpositiveinfinity> for this property to animate the images continuously.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAnimationLoopCount IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The block to execute for each frame of an image animation.
+ *
+ * - Parameters:
+ * - index: The index of the image in the file.
+ * - image: The image to display.
+ * - stop: A Boolean flag set to `false` on input. To stop the animation, set the value of this parameter to `true`.
+ *
+ * During the animation of an image, the system calls this block for each successive frame of the animation. Use this block to display the new image in your app's interface, and to update any additional details.
+ */
typedef void (^CGImageSourceAnimationBlock)(size_t index, CGImageRef image, bool* stop);
-/** Animate the sequence of images contained in the file at `url`. Currently supported image
- * formats are GIF and APNG. The `options` dictionary may be used to request additional playback
- * options; see the list of keys above for more information. The block is called on the main queue
- * at time intervals specified by the `delay time` of the image. The animation can be stopped by
- * setting the boolean parameter of the block to true.
+/**
+ * Animate the sequence of images in the Graphics Interchange Format (GIF) or Animated Portable Network Graphics (APNG) file at the specified URL.
+ *
+ * - Parameters:
+ * - url: The URL of the image file.
+ * - options: Additional playback options. Include the ``kCGImageAnimationDelayTime`` or ``kCGImageAnimationLoopCount`` keys to override the timing information in the image file. Include the ``kCGImageAnimationStartIndex`` key to specify the index of the first image in the animation.
+ * - block: The animation block to execute for each image frame. The system executes this block on the main queue, and at the intervals indicated by the image's delay time metadata. Use this block to display the provided image in your interface.
+ *
+ * - Returns: A status code indicating the success or failure of the animation.
+ *
+ * The function executes the provided `block` for each frame of the animation. By default, the function uses the timing information contained in the image's metadata. This information includes the number of seconds between individual frames, and the number of times to loop the animation. For example, the function uses the ``kCGImagePropertyGIFDelayTime`` and ``kCGImagePropertyGIFLoopCount`` tags from a GIF file's metadata. To override the default timing information, provide the appropriate keys in the `options` dictionary.
*/
IMAGEIO_EXTERN OSStatus CGAnimateImageAtURLWithBlock(CFURLRef url, CFDictionaryRef _iio_Nullable options, CGImageSourceAnimationBlock block) IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
-/** Animate the sequence of images contained in `data`. Currently supported image
- * formats are GIF and APNG. The `options` dictionary may be used to request additional playback
- * options; see the list of keys above for more information. The block is called on the main queue
- * at time intervals specified by the `delay time` of the image. The animation can be stopped by
- * setting the boolean parameter of the block to true.
+/**
+ * Animate the sequence of images using data from a Graphics Interchange Format (GIF) or Animated Portable Network Graphics (APNG) file file.
+ *
+ * - Parameters:
+ * - data: The image data to animate.
+ * - options: Additional playback options. Include the ``kCGImageAnimationDelayTime`` or ``kCGImageAnimationLoopCount`` keys to override the timing information in the image file. Include the ``kCGImageAnimationStartIndex`` key to specify the index of the first image in the animation.
+ * - block: The animation block to execute for each image frame. The system executes this block on the main queue, and at the intervals indicated by the image's delay time metadata. Use this block to display the provided image in your interface.
+ *
+ * - Returns: A status code indicating the success or failure of the animation.
+ *
+ * The function executes the provided `block` for each frame of the animation. By default, the function uses the timing information contained in the image's metadata. This information includes the number of seconds between individual frames, and the number of times to loop the animation. For example, the function uses the ``kCGImagePropertyGIFDelayTime`` and ``kCGImagePropertyGIFLoopCount`` tags from a GIF image's metadata. To override the default timing information, provide the appropriate keys in the `options` dictionary.
*/
IMAGEIO_EXTERN OSStatus CGAnimateImageDataWithBlock(CFDataRef data, CFDictionaryRef _iio_Nullable options, CGImageSourceAnimationBlock block) IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageDestination.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageDestination.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageDestination.h 2026-04-24 21:56:31
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageDestination.h 2026-05-21 07:43:46
@@ -9,6 +9,15 @@
#include <ImageIO/ImageIOBase.h>
+/**
+ * An opaque type that you use to write image data to a URL, data object, or data consumer.
+ *
+ * A ``CGImageDestination`` object provides an abstract interface for saving image data. Use an image destination to represent a single image, or multiple images packaged together. For example, you might create an image that also contains a thumbnail. You can also use the image destination to add metadata to your images.
+ *
+ * An image destination outputs data to a URL, a `CFData` object, or a <doc://com.apple.documentation/documentation/coregraphics/cgdataconsumer> object, which you specify at creation time. After you create the image destination, add the image data and properties. When you are done, call ``CGImageDestinationFinalize(_:)`` to finalize the image data and write it to the output location.
+ *
+ * For more information, see [Image I/O Programming Guide](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/ImageIOGuide/imageio_intro/ikpg_intro.html#//apple_ref/doc/uid/TP40005462).
+ */
typedef struct IIO_BRIDGED_TYPE(id) CGImageDestination * CGImageDestinationRef;
#include <CoreGraphics/CoreGraphics.h>
@@ -30,6 +39,11 @@
* A value of 0.0 implies that that maximum compression is
* desired. */
+/**
+ * The desired compression quality to use when writing the image data.
+ *
+ * If present, the value associated with this key must be a `CFNumberRef` data type in the range `0.0` to `1.0`. A value of `1.0` specifies to use lossless compression if destination format supports it. A value of 0.0 implies to use maximum compression.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationLossyCompressionQuality IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
@@ -39,16 +53,31 @@
* any alpha component of its own. If not present a white color
* will be used if needed. */
+/**
+ * The background color to use when the image has an alpha component, but the destination format doesn't support alpha.
+ *
+ * If present, the value associated with this key must be a <doc://com.apple.documentation/documentation/coregraphics/cgcolor> data type without an alpha component of its own. If not present, and if a background color is needed, a white color is used.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationBackgroundColor IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Rescale the image to the maximum width and height in pixels.
* If present, this value of this key must be a CFNumberRef. */
+/**
+ * The maximum width and height of the image, in pixels.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>. If present, the destination rescales the image as needed to fit within the maximum width and height. If this key isn't present, the destination retains the native image size.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationImageMaxPixelSize IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
/* Enable or disable thumbnail embedding for JPEG and HEIF.
* The value should be kCFBooleanTrue or kCFBooleanFalse. Defaults to kCFBooleanFalse */
+/**
+ * A Boolean value that indicates whether to embed a thumbnail for JPEG and HEIF images.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfboolean> value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationEmbedThumbnail IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
@@ -56,15 +85,32 @@
* The value should be kCFBooleanTrue or kCFBooleanFalse
* Defaults to kCFBooleanFalse = don't do any color conversion
*/
+/**
+ * A Boolean value that indicates whether to create the image using a colorspace.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfboolean> value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>. Include this key and set it to <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue> to color convert the image using its colorspace, which provides better compatibility with older devices.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationOptimizeColorForSharing IMAGEIO_AVAILABLE_STARTING(10.12, 9.3);
/* Return the CFTypeID for CGImageDestinations. */
+/**
+ * Returns the unique type identifier of an image destination opaque type.
+ *
+ * - Returns: Returns the Core Foundation type ID for an image destination.
+ *
+ * A type identifier is an integer that identifies the opaque type to which a Core Foundation object belongs. You use type IDs in various contexts, such as when you are operating on heterogeneous collections.
+ */
IMAGEIO_EXTERN CFTypeID CGImageDestinationGetTypeID(void) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return an array of supported type identifiers. */
+/**
+ * Returns an array of the uniform type identifiers that are supported for image destinations.
+ *
+ * - Returns: Returns an array of the uniform type identifiers that image destinations support. For a list of system-declared and third-party identifiers, see <doc://com.apple.documentation/documentation/uniformtypeidentifiers>.
+ */
IMAGEIO_EXTERN CFArrayRef _iio_Nonnull CGImageDestinationCopyTypeIdentifiers(void) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an image destination writing to the data consumer `consumer'.
@@ -75,6 +121,17 @@
* dictionary is reserved for future use; currently, you should pass NULL for
* this parameter. */
+/**
+ * Creates an image destination that writes to the specified data consumer.
+ *
+ * - Parameters:
+ * - consumer: A data consumer object to store the image data.
+ * - type: The uniform type identifier of the resulting image file. For a list of system-declared and third-party identifiers, see <doc://com.apple.documentation/documentation/uniformtypeidentifiers>.
+ * - count: The number of images (not including thumbnail images) you want to include in the image file.
+ * - options: Future options. Specify `NULL` for this parameter.
+ *
+ * - Returns: An image destination, or `NULL` if an error occurs. You are responsible for releasing this object using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ */
IMAGEIO_EXTERN CGImageDestinationRef _iio_Nullable CGImageDestinationCreateWithDataConsumer(CGDataConsumerRef _iio_Nonnull consumer, CFStringRef _iio_Nonnull type, size_t count, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an image destination writing to `data'. The parameter `type'
@@ -84,6 +141,17 @@
* that the image file will contain. The `options' dictionary is reserved
* for future use; currently, you should pass NULL for this parameter. */
+/**
+ * Creates an image destination that writes to a Core Foundation mutable data object.
+ *
+ * - Parameters:
+ * - data: The data object in which to store the image data.
+ * - type: The uniform type identifier of the resulting image file. For a list of system-declared and third-party identifiers, see <doc://com.apple.documentation/documentation/uniformtypeidentifiers>.
+ * - count: The number of images (not including thumbnail images) you want to include in the image file.
+ * - options: Future options. Specify `NULL` for this parameter.
+ *
+ * - Returns: An image destination, or `NULL` if an error occurs. You are responsible for releasing this object using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ */
IMAGEIO_EXTERN CGImageDestinationRef _iio_Nullable CGImageDestinationCreateWithData(CFMutableDataRef _iio_Nonnull data, CFStringRef _iio_Nonnull type, size_t count, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an image destination writing to `url'. The parameter `type'
@@ -94,11 +162,29 @@
* for future use; currently, you should pass NULL for this parameter.
* Note that if `url' already exists, it will be overwritten. */
+/**
+ * Creates an image destination that writes image data to the specified URL.
+ *
+ * - Parameters:
+ * - url: The URL at which to write the image data. This object overwrites any data at the specified URL.
+ * - type: The uniform type identifier of the resulting image file. For a list of system-declared and third-party identifiers, see <doc://com.apple.documentation/documentation/uniformtypeidentifiers>.
+ * - count: The number of images (not including thumbnail images) you want to include in the image file.
+ * - options: Future options. Specify `NULL` for this parameter.
+ *
+ * - Returns: An image destination, or `NULL` if an error occurs. You are responsible for releasing this object using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ */
IMAGEIO_EXTERN CGImageDestinationRef _iio_Nullable CGImageDestinationCreateWithURL(CFURLRef _iio_Nonnull url, CFStringRef _iio_Nonnull type, size_t count, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Specify the dictionary `properties' of properties which apply to all
* images in the image destination `idst'. */
+/**
+ * Applies one or more properties to all images in an image destination.
+ *
+ * - Parameters:
+ * - idst: The image destination to modify
+ * - properties: A dictionary that contains the properties to apply. For a list of possible values, see <doc:image-properties> and <doc:CGImageDestination/Configuring-the-Image-Behaviors>.
+ */
IMAGEIO_EXTERN void CGImageDestinationSetProperties(CGImageDestinationRef _iio_Nonnull idst, CFDictionaryRef _iio_Nullable properties) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Set the next image in the image destination `idst' to be `image' with
@@ -106,6 +192,16 @@
* more images are added than specified in the original count of the image
* destination. */
+/**
+ * Adds an image to an image destination.
+ *
+ * - Parameters:
+ * - idst: The image destination to modify.
+ * - image: The image to add.
+ * - properties: An optional dictionary that specifies the properties of the added image. Specify `NULL` to omit any additional properties. For a list of possible values, see <doc:image-properties> and <doc:CGImageDestination/Configuring-the-Image-Behaviors>.
+ *
+ * The function logs an error if you add more images than what you specified when you created the image destination.
+ */
IMAGEIO_EXTERN void CGImageDestinationAddImage(CGImageDestinationRef _iio_Nonnull idst, CGImageRef _iio_Nonnull image, CFDictionaryRef _iio_Nullable properties) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Set the next image in the image destination `idst' to be the image at
@@ -115,6 +211,15 @@
* the value kCFNull, the corresponding property in the destination will be
* removed. */
+/**
+ * Adds an image from an image source to an image destination.
+ *
+ * - Parameters:
+ * - idst: The image destination to modify.
+ * - isrc: An image source that contains the image.
+ * - index: The index of the image in the image source. Specify a valid, zero-based index into the images of the image source. If the index is invalid, this method returns `NULL`.
+ * - properties: An optional dictionary that specifies additional image property information. The added image automatically inherits the properties found in the image source. Use this dictionary to add properties to the image, or to modify one of the inherited properties. To remove an inherited property altogether, specify `NULL` for the property's value. For a list of possible values, see <doc:image-properties> and <doc:CGImageDestination/Configuring-the-Image-Behaviors>.
+ */
IMAGEIO_EXTERN void CGImageDestinationAddImageFromSource(CGImageDestinationRef _iio_Nonnull idst, CGImageSourceRef _iio_Nonnull isrc, size_t index, CFDictionaryRef _iio_Nullable properties) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Write everything to the destination data, url or consumer of the image
@@ -123,6 +228,16 @@
* additional data will be written to the image destination. Return true
* if the image was successfully written; false otherwise. */
+/**
+ * Writes image data and properties to the data, URL, or data consumer associated with the image destination.
+ *
+ * - Parameters:
+ * - idst: An image destination.
+ *
+ * - Returns: `true` if the image destination successfully finalized the images, or `false` if an error occurred.
+ *
+ * Call this method as the final step in saving your images. The output of the image destination isn't valid until you call this method. After calling this function, you can't add any more data to the image destination.
+ */
IMAGEIO_EXTERN bool CGImageDestinationFinalize(CGImageDestinationRef _iio_Nonnull idst) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
@@ -137,6 +252,11 @@
* The value should be kCFBooleanTrue or kCFBooleanFalse
* Defaults to kCFBooleanFalse
*/
+/**
+ * A Boolean value that indicates whether to include a HEIF-embedded gain map in the image data.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfboolean> value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>. If you scale the destination image using the ``kCGImageDestinationImageMaxPixelSize`` key, the destination also scales the gain map.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationPreserveGainMap IMAGEIO_AVAILABLE_STARTING(11.0, 14.1);
/**
@@ -149,6 +269,11 @@
* will be replaced. Use kCGImageDestinationMergeMetadata to merge the tags
* with the existing tags in the image source.
*/
+/**
+ * The metadata tags to include with the image.
+ *
+ * The value of this key is a ``CGImageMetadata`` type. When you specify this key, the image destination ovewrites all EXIF, IPTC, and XMP metadata. If you want to merge the new tags with the existing metadata, include the ``kCGImageDestinationMergeMetadata`` key in addition to this key.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationMetadata IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
/* If true, The metadata will be copied from the source and merged with the tags
@@ -158,6 +283,13 @@
* kCFNull. If present, the value of this key is a CFBoooleanRef. The default
* is kCFBooleanFalse.
*/
+/**
+ * A Boolean value that indicates whether to merge new metadata with the image's existing metadata.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfboolean> value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>.
+ *
+ * If you set this key to <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue>, the image destination merges the information in the ``kCGImageDestinationMetadata`` key with the image's existing metadata. Specifically, if a tag doesn't exist in the source, the destination adds it. If the tag exists in the source, the destination updates its value. To remove a tag, set the value of the appropriate key to <doc://com.apple.documentation/documentation/corefoundation/kcfnull>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationMergeMetadata IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
/* XMP data will not be written to the destination. If used in conjunction with
@@ -165,6 +297,11 @@
* an XMP packet will not be written to the file. IPTC tags, that are stored in XMP, will not be preserved.
* If present, the value for this key is a CFBooleanRef. The default is kCFBooleanFalse.
*/
+/**
+ * A Boolean value that indicates whether to exclude XMP data from the destination.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfboolean> value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>, which causes the destination to include XMP metadata. If you use this flag in conjunction with the ``kCGImageDestinationMetadata`` flag, the image destination preserves EXIF and IPTC tags but doesn't write XMP packets to the file.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataShouldExcludeXMP IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
/* If true, GPS metadata will not be written to EXIF data or the corresponding
@@ -173,6 +310,11 @@
* If present, the value for this key is a CFBooleanRef. The default is
* kCFBooleanFalse.
*/
+/**
+ * A Boolean value that indicates whether to exclude GPS metadata from EXIF data or the corresponding XMP tags.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfboolean> value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>, which includes GPS information in the metadata. This flag doesn't filter any proprietary location data in the manufacturer's EXIF MakerNote or in custom XMP properties.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataShouldExcludeGPS IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
/* Updates the DateTime parameters of the image metadata. Only values
@@ -181,12 +323,26 @@
* Exif DateTime or ISO 8601 DateTime format. This option is mutually
* exclusive with kCGImageDestinationMetadata.
*/
+/**
+ * The date and time information to associate with the image.
+ *
+ * This property puts the specified date and time information into the DateTime parameters of the image's metadata. Specify the value of this key using a <doc://com.apple.documentation/documentation/corefoundation/cfstring> or <doc://com.apple.documentation/documentation/corefoundation/cfdata>. For strings, the value must be in EXIF DateTime or ISO 8601 DateTime format.
+ *
+ * This option is mutually exclusive with ``kCGImageDestinationMetadata``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationDateTime IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
/* Updates the orientation in the image metadata. The image data itself will
* not be rotated. If present, the value should be a CFNumberRef from 1 to 8.
* This option is mutually exclusive with kCGImageDestinationMetadata.
*/
+/**
+ * The orientation of the image, specified as an EXIF value in the range 1 to 8.
+ *
+ * The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>, and the number must be an integer in the range `1`–`8`. For more information about the meaning of each number, see the orientation field in the EXIF specification.
+ *
+ * This option is mutually exclusive with ``kCGImageDestinationMetadata``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageDestinationOrientation IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
/* For KTX files:
@@ -229,6 +385,16 @@
* - the auxiliary data description (CFDictionary) - (kCGImageAuxiliaryDataInfoDataDescription)
* - metadata (CGImageMetadataRef) - (kCGImageAuxiliaryDataInfoMetadata)
* To add auxiliary data to an image, call CGImageDestinationAddAuxiliaryDataInfo() after adding the CGImage to the CGImageDestinationRef.
+ */
+/**
+ * Sets the auxiliary data, such as mattes and depth information, that accompany the image.
+ *
+ * - Parameters:
+ * - idst: The image destination to modify.
+ * - auxiliaryImageDataType: The type of auxiliary information you want to add. For a list of possible values, see <doc:individual-image-properties#Auxiliary-Data-Types>.
+ * - auxiliaryDataInfoDictionary: A dictionary that contains the ``kCGImageAuxiliaryDataInfoData``, ``kCGImageAuxiliaryDataInfoDataDescription``, and ``kCGImageAuxiliaryDataInfoMetadata`` keys. Use those keys to describe the depth or matte information.
+ *
+ * Call this method after you add an image to the image destination. This method adds the specified depth or matte information to the most recently added image.
*/
IMAGEIO_EXTERN void CGImageDestinationAddAuxiliaryDataInfo(CGImageDestinationRef _iio_Nonnull idst, CFStringRef _iio_Nonnull auxiliaryImageDataType, CFDictionaryRef _iio_Nonnull auxiliaryDataInfoDictionary ) IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageMetadata.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageMetadata.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageMetadata.h 2026-04-24 21:46:19
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageMetadata.h 2026-05-21 06:59:45
@@ -32,40 +32,47 @@
* @unsorted
*/
-/*!
- * @typedef CGImageMetadataRef
- * @abstract an immutable container for CGImageMetadataTags
+/**
+ * An immutable object that contains the XMP metadata associated with an image.
+ *
+ * A ``CGImageMetadata`` object stores the metadata associated with an image. Create this object from your image's associated XMP data, and use it to fetch individual metadata tags. You can search for specific tags, or enumerate all of the tags present for the image.
*/
typedef const struct IIO_BRIDGED_TYPE(id) CGImageMetadata *CGImageMetadataRef;
///*! @functiongroup Creating and identifying CGImageMetadata containers */
-/*!
- * @function CGImageMetadataGetTypeID
- * @abstract Gets the type identifier for the CGImageMetadata opaque type
- * @return the type identifier for the CGImageMetadata opaque type
+
+/**
+ * Returns the type identifier for metadata objects.
+ *
+ * - Returns: The type identifier for ``CGImageMetadata`` and ``CGMutableImageMetadata`` objects.
*/
IMAGEIO_EXTERN CFTypeID CGImageMetadataGetTypeID(void);
-/*!
- * @typedef CGMutableImageMetadataRef
- * @abstract a mutable container for CGImageMetadataTags
- * @discussion A CGMutableImageMetadataRef can be used in any function that
- * accepts a CGImageMetadataRef.
+/**
+ * An opaque type for adding or modifying image metadata.
+ *
+ * Create a ``CGMutableImageMetadata`` opaque type when you want to modify the metadata in an image. You may pass this type to any functions that take a ``CGImageMetadata`` type as a parameter. This object stores the tag information as XMP data, which you can write back to the image.
+ *
+ * When you access or modify EXIF or IPTC properties, the metadata functions automatically bridge those properties to appropriate XMP properties. This bridging behavior fills in any fields that are present only in the XMP data. For example, it fills in the namespace, prefix, and XMP type information in the corresponding ``CGImageMetadataTag`` object.
*/
typedef struct IIO_BRIDGED_TYPE(id) CGImageMetadata *CGMutableImageMetadataRef;
-/*!
- * @function CGImageMetadataCreateMutable
- * @abstract Creates an empty CGMutableImageMetadataRef
+/**
+ * Creates an empty, mutable image metdata opaque type.
+ *
+ * - Returns: A ``CGMutableImageMetadata`` object that contains no metadata information, or `NULL` if an error occurs. You are responsible for releasing the returned object.
*/
IMAGEIO_EXTERN CGMutableImageMetadataRef _iio_Nonnull CGImageMetadataCreateMutable(void) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataCreateMutableCopy
- * @abstract Creates a deep mutable copy of another CGImageMetadataRef
- * @discussion Before modifying an immutable CGImageMetadataRef (such as metadata
- * from CGImageSourceCopyMetadataAtIndex) you must first make a copy.
- * This function makes a deep copy of all CGImageMetadataTags and their values.
+/**
+ * Creates a deep, mutable copy of the specified metadata information.
+ *
+ * - Parameters:
+ * - metadata: The metadata information to copy. This function makes a deep copy of all ``CGImageMetadataTag`` structures in this parameter, including the values for the tags.
+ *
+ * - Returns: A new ``CGMutableImageMetadata`` type that contains a deep copy of the tags in the metadata parameter.
+ *
+ * Typically, you call this function before modifying the metadata information for an image. Use it to create a copy of the image's existing metadata information, and then add or modify that metadata before saving it with the image.
*/
IMAGEIO_EXTERN CGMutableImageMetadataRef _iio_Nullable CGImageMetadataCreateMutableCopy(CGImageMetadataRef _iio_Nonnull metadata) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -74,20 +81,21 @@
// IPTC tag, or XMP property.
// ****************************************************************************
-/*!
- * @typedef CGImageMetadataTagRef
- * @abstract an individual metadata tag
- * @discussion A CGImageMetadataTag encapsulates an EXIF, IPTC, or XMP property.
- * All tags contain a namespace, prefix, name, type, and value. Please see
- * @link CGImageMetadataTagCreate @/link for more details.
+/**
+ * An immutable type that contains information about a single piece of image metadata.
+ *
+ * Each ``CGImageMetadataTag`` opaque type contains a single EXIF, IPTC, or XMP property. The namespace, prefix, name, type, and value of the tag identify different portions of the tag's content. For example, the namespace specifies whether the tag is part of the EXIF metadata or a different set of metadata.
+ *
+ * You retrieve existing metadata tags from an ``CGImageMetadata`` opaque type. You may also create new tags and add them to a ``CGMutableImageMetadata`` type, before you assign the updated metadata to an image.
*/
typedef struct IIO_BRIDGED_TYPE(id) CGImageMetadataTag *CGImageMetadataTagRef;
///*! @functiongroup Creating and identifying CGImageMetadataTags */
-/*!
- * @function CGImageMetadataTagGetTypeID
- * @abstract Gets the type identifier for the CGImageMetadataTag opaque type
- * @return the type identifier for the CGImageMetadataTagGetTypeID opaque type
+
+/**
+ * Returns the type identifier for the image metadata tag opaque type
+ *
+ * - Returns: The type identifier for the ``CGImageMetadataTag`` opaque type.
*/
IMAGEIO_EXTERN CFTypeID CGImageMetadataTagGetTypeID(void) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -106,15 +114,42 @@
// CGImageMetadataRegisterNamespaceForPrefix.
// Public, common namespaces.
+/**
+ * The namespace for the Exchangeable Image File (EXIF) format.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceExif IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The namespace for EXIF auxiliary keys.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceExifAux IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The namespace for the exifEX format.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceExifEX IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The namespace for the Dublin Core Metadata Element Set.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceDublinCore IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The namespace for the IPTC format.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceIPTCCore IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceIPTCExtension IMAGEIO_AVAILABLE_STARTING(10.13.4, 11.3);
+/**
+ * The namespace for Photoshop image metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespacePhotoshop IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The namespace for TIFF image metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceTIFF IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The namespace for the Extensible Metadata Platform (XMP) format.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceXMPBasic IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The namespace for XMP metadata that conveys legal restrictions associated with a resource.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataNamespaceXMPRights IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
// All metadata tags must contain a prefix. For the public namespaces defined
@@ -125,89 +160,115 @@
// (example - "exif:Flash").
// Public, common prefixes.
+/**
+ * The prefix string for tags in the Exchangeable Image File (EXIF) metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixExif IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The prefix string for tags in the EXIF auxiliary metadata collection.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixExifAux IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The prefix string for tags in the exifEX metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixExifEX IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The prefix string for tags in the Dublin Core Metadata Element Set.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixDublinCore IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The prefix string for tags in the IPTC metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixIPTCCore IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixIPTCExtension IMAGEIO_AVAILABLE_STARTING(10.13.4, 11.3);
+/**
+ * The prefix string for tags in the Photoshop image metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixPhotoshop IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The prefix string for tags in the TIFF image metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixTIFF IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The prefix string for tags in the XMP metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixXMPBasic IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
+/**
+ * The prefix string for tags in the XMP metadata that convey legal restrictions for the resource.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageMetadataPrefixXMPRights IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
// Metadata value type constants.
-/*!
- * @typedef CGImageMetadataType
- * @abstract The XMP type for a CGImageMetadataTag
- * @discussion CGImageMetadataType defines a list of constants used to indicate
- * the type for a CGImageMetadataTag. If you are reading metadata, use the type
- * to determine how to interpret the CGImageMetadataTag's value. If you are
- * creating a CGImageMetadataTag, use the type to specify how the tag
- * should be serialized in XMP. String types have CFStringRef values, array
- * types have CFArray values, and structure types have CFDictionary values.
- * @const kCGImageMetadataTypeDefault The type will be interpretted based on the
- * CFType of the tag's value. This is only used when creating a new
- * CGImageMetadataTag - no existing tags should have this value. CFString
- * defaults to kCGImageMetadataTypeString, CFArray defaults to
- * kCGImageMetadataTypeArrayOrdered, and CFDictionary defaults to
- * kCGImageMetadataTypeStructure.
- * @const kCGImageMetadataTypeString A string value. CFNumber and CFBoolean
- * values will be converted to a string.
- * @const kCGImageMetadataTypeArrayUnordered An array where order does not matter.
- * Serialized in XMP as <rdf:Bag>.
- * @const kCGImageMetadataTypeArrayOrdered An array where order is preserved.
- * Serialized in XMP as <rdf:Seq>.
- * @const kCGImageMetadataTypeAlternateArray An ordered array where all elements
- * are alternates for the same value. Serialized in XMP as <rdf:Alt>.
- * @const kCGImageMetadataTypeAlternateText A special case of an alternate array
- * where all elements are different localized strings for the same value.
- * Serialized in XMP as an alternate array of strings with xml:lang qualifiers.
- * @const kCGImageMetadataTypeStructure A collection of keys and values. Unlike
- * array elements, fields of a structure may belong to different namespaces.
+/**
+ * Constants that indicate the XMP type for a metadata tag.
+ *
+ * Use these constants to identify the type of metadata in a ``CGImageMetadataTag`` opaque type. The type tells you how to interpret the value of the metadata tag. When creating a new ``CGImageMetadataTag``, specify a type so the system knows how to serialize the data to the XMP format.
*/
typedef CF_ENUM(int32_t, CGImageMetadataType) {
+ /**
+ * An invalid metadata type.
+ */
kCGImageMetadataTypeInvalid = -1,
+ /**
+ * The default type for new tags.
+ *
+ * When you create new tags, the system assigns this value initially. The system uses the Core Foundation type of the metadata tag's value to determine an appropriate type. During the serialization process, the system converts the type automatically to a nondefault value.
+ */
kCGImageMetadataTypeDefault = 0,
+ /**
+ * A string value.
+ *
+ * The string type also represents number and Boolean values.
+ */
kCGImageMetadataTypeString = 1,
+ /**
+ * An array that doesn't preserve the order of items.
+ *
+ * During serialization, this type becomes `<rdf:Bag>` in the XMP format.
+ */
kCGImageMetadataTypeArrayUnordered = 2,
+ /**
+ * An array that preserves the order of items.
+ *
+ * During serialization, this type becomes `<rdf:Seq>` in the XMP format.
+ */
kCGImageMetadataTypeArrayOrdered = 3,
+ /**
+ * An ordered array, in which all elements are alternates for the same value.
+ *
+ * During serialization, this type becomes `<rdf:Alt>` in the XMP format.
+ */
kCGImageMetadataTypeAlternateArray = 4,
+ /**
+ * An alternate array, in which all elements are localized strings for the same value.
+ *
+ * During serialization, this type becomes an alternate array of strings with `xml:lang` qualifiers in the XMP format.
+ */
kCGImageMetadataTypeAlternateText = 5,
+ /**
+ * A collection of keys and values.
+ *
+ * Unlike array elements, fields of a structure may belong to different namespaces.
+ */
kCGImageMetadataTypeStructure = 6
};
// ****************************************************************************
// Creating a CGImageMetadataTag
// ****************************************************************************
-/*!
- * @function CGImageMetadataTagCreate
- * @abstract Creates a new CGImageMetadataTag
- * @param xmlns The namespace for the tag. The value can be a common XMP namespace
- * defined above, such as kCGImageMetadataNamespaceExif, or a CFString with a
- * custom namespace URI. Custom namespaces must be a valid XML namespace. By
- * convention, namespaces should end with either '/' or '#'. For example, exif
- * uses the namespace "http://ns.adobe.com/exif/1.0/".
- * @param prefix An abbreviation for the XML namespace. The value can be NULL if
- * the namespace is defined as a constant. Custom prefixes must be a valid XML
- * name. For example, the prefix used for "http://ns.adobe.com/exif/1.0/" is "exif".
- * The XMP serialization of the tag will use the prefix. Prefixes are also
- * important for path-based CGImageMetadata functions, such as
- * @link CGImageMetadataCopyStringValueWithPath @/link or
- * @link CGImageMetadataSetValueWithPath @/link.
- * @param name The name of the tag. It must be a valid XMP name.
- * @param type The type of the tag's value. Must be a constant from @link
- * CGImageMetadataType @/link.
- * @param value The value of the tag. Allowable CFTypes include CFStringRef,
- * CFNumberRef, CFBooleanRef, CFArrayRef, and CFDictionaryRef. The CFType of 'value'
- * must correspond to the 'type'. The elements of a CFArray must be either a
- * CFStringRef or CGImageMetadataTagRef. The keys of a CFDictionary must be
- * CFStringRefs with valid XMP names. The values of a CFDictionary must be either
- * CFStringRefs or CGImageMetadataTagRefs. A shallow copy of the value is stored
- * in the tag. Therefore, modifying a mutable value after the tag is created
- * will not affect the tag's value.
- * @result Returns a pointer to a new CGImageMetadataTag. Returns NULL if a tag
- * could not be created with the specified parameters.
+/**
+ * Creates a new image metadata tag, and fills it with the specified information.
+ *
+ * - Parameters:
+ * - xmlns: The namespace for the tag. Specify a common XMP namespace, such as ``kCGImageMetadataNamespaceExif``, or a string with a custom namespace URI. A custom namespace must be a valid XML namespace. By convention, namespaces end with either the `/` or `#` character.
+ * - prefix: An abbreviation for the XML namespace. You must specify a valid string for custom namespace. For standard namespaces such as ``kCGImageMetadataNamespaceExif``, you may specify `NULL`.
+ * - name: The name of the metadata tag. This string must correspond to a valid XMP name.
+ * - type: The type of data in the `value` parameter. For a list of possible values, see ``CGImageMetadataType``.
+ * - value: The value of the tag. The value's type must match the information in the `type` parameter. Supported types for this parameter are <doc://com.apple.documentation/documentation/corefoundation/cfstring>, <doc://com.apple.documentation/documentation/corefoundation/cfnumber>, <doc://com.apple.documentation/documentation/corefoundation/cfboolean>, <doc://com.apple.documentation/documentation/corefoundation/cfarray>, and <doc://com.apple.documentation/documentation/corefoundation/cfdictionary>. The keys of a dictionary must be <doc://com.apple.documentation/documentation/corefoundation/cfstring> types with XMP names. The values of a dictionary must be either <doc://com.apple.documentation/documentation/corefoundation/cfstring> or ``CGImageMetadataTag`` types.
+ *
+ * The newly created tag stores only a shallow copy of the original value. As a result, modifying the original value doesn't affect the value in the new ``CGImageMetadataTag``.
+ *
+ * - Returns: A new ``CGImageMetadataTag`` type, or `NULL` if an error occurred.
*/
IMAGEIO_EXTERN CGImageMetadataTagRef _iio_Nullable CGImageMetadataTagCreate (CFStringRef _iio_Nonnull xmlns, CFStringRef _iio_Nullable prefix, CFStringRef _iio_Nonnull name, CGImageMetadataType type, CFTypeRef _iio_Nonnull value) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -215,54 +276,72 @@
// Getting attributes of a CGImageMetadataTag
// ****************************************************************************
///*! @functiongroup Getting attributes of a CGImageMetadataTag */
-/*!
- * @function CGImageMetadataTagCopyNamespace
- * @abstract Returns a copy of the tag's namespace
+
+/**
+ * Returns an immutable copy of the tag's XMP namespace.
+ *
+ * - Parameters:
+ * - tag: The metadata tag from which to fetch the namespace information.
+ *
+ * - Returns: An immutable string that contains the tag's namespace. For a list of public namespaces, see <doc:xmp-namespaces-and-prefixes>. You are responsible for releasing this string.
+ *
+ * By convention, namespaces end with either a `/` or `#` character. For example, EXIF metadata uses the namespace `http://ns.adobe.com/exif/1.0/`. Custom namespaces must be a valid XML namespace.
*/
IMAGEIO_EXTERN CFStringRef _iio_Nullable CGImageMetadataTagCopyNamespace(CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataTagCopyPrefix
- * @abstract Returns a copy of the tag's prefix
+/**
+ * Returns an immutable copy of the tag's prefix.
+ *
+ * - Parameters:
+ * - tag: The metadata tag from which to fetch the namespace information.
+ *
+ * - Returns: An immutable string that contains the tag's prefix. For example, EXIF metadata uses the prefix `exif`. You are responsible for releasing this string.
*/
IMAGEIO_EXTERN CFStringRef _iio_Nullable CGImageMetadataTagCopyPrefix(CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataTagCopyName
- * @abstract Returns a copy of the tag's name
+/**
+ * Returns an immutable copy of the tag's name.
+ *
+ * - Parameters:
+ * - tag: The metadata tag from which to fetch the namespace information.
+ *
+ * - Returns: A string that contains the tag's name. You are responsible for releasing this string.
*/
IMAGEIO_EXTERN CFStringRef _iio_Nullable CGImageMetadataTagCopyName(CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataTagCopyValue
- * @abstract Returns a shallow copy of the tag's value
- * @discussion This function should only be used to read the tag's value.
- * CGImageMetadataCopyTagWithPath returns a copy of the tag (including a copy of
- * the tag's value). Therefore mutating a tag's value returned from this function
- * may not actually mutate the value in the CGImageMetadata. It is recommended
- * to create a new tag followed by CGImageMetadataSetTagWithPath, or use
- * CGImageMetadataSetValueWithPath to mutate a metadata value.
+/**
+ * Returns a shallow copy of the tag's value, which is suitable only for reading.
+ *
+ * - Parameters:
+ * - tag: The metadata tag from which to fetch the namespace information.
+ *
+ * - Returns: A copy of the tag's value. Possible return types are <doc://com.apple.documentation/documentation/corefoundation/cfstring>, <doc://com.apple.documentation/documentation/corefoundation/cfnumber>, <doc://com.apple.documentation/documentation/corefoundation/cfboolean>, <doc://com.apple.documentation/documentation/corefoundation/cfarray>, and <doc://com.apple.documentation/documentation/corefoundation/cfdictionary>.
+ *
+ * Use this method to obtain the value when you want to use or display that value elsewhere. Any changes you make to the returned value don't change the contents of the metadata tag. To change the value, call ``CGImageMetadataSetValueWithPath(_:_:_:_:)`` or ``CGImageMetadataSetTagWithPath(_:_:_:_:)`` instead.
*/
IMAGEIO_EXTERN CFTypeRef _iio_Nullable CGImageMetadataTagCopyValue(CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataTagGetType
- * @abstract Get the type of the CGImageMetadataTag
- * @return Returns a CGImageMetadataType constant for the CGImageMetadataTag.
- * This is primarily used to determine how to interpret the tag's value.
+/**
+ * Returns the type of the metadata tag's value.
+ *
+ * - Parameters:
+ * - tag: The metadata tag from which to fetch the namespace information.
+ *
+ * - Returns: A constant that indicates the type of the value. For a list of possible return values, see ``CGImageMetadataType``.
+ *
+ * To get the value itself, call ``CGImageMetadataTagCopyValue(_:)``. Metadata tags store string, number, and Boolean values using the ``CGImageMetadataType/string`` type.
*/
IMAGEIO_EXTERN CGImageMetadataType CGImageMetadataTagGetType(CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataTagCopyQualifiers
- * @abstract Return a copy of the tag's qualifiers
- * @discussion XMP allows properties to contain supplemental properties called
- * qualifiers. Qualifiers are themselves CGImageMetadataTags with their own
- * namespace, prefix, name, and value. A common use is the xml:lang qualifier
- * for elements of an alternate-text array.
- * @return Returns a copy of the array of qualifiers. Elements of the array are
- * CGImageMetadataTags. Returns NULL if the tag does not have any qualifiers.
- * The copy is shallow, the qualifiers are not deep copied.
+/**
+ * Returns a shallow copy of the metadata tags that act as qualifiers for the current tag.
+ *
+ * - Parameters:
+ * - tag: The metadata tag from which to fetch the namespace information.
+ *
+ * - Returns: An array of ``CGImageMetadataTag`` types that represent the current tag's qualifiers, or `NULL` if the tag has no qualifiers.
+ *
+ * XMP allows a metadata tag to contain supplemental tags that act as qualifiers on the content. For example, the `xml:lang` qualifier provides alternate text entries for the current tag. Each qualifier is a ``CGImageMetadataTag`` with its own namespace, prefix, name, and value.
*/
IMAGEIO_EXTERN CFArrayRef _iio_Nullable CGImageMetadataTagCopyQualifiers(CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -273,83 +352,56 @@
// structures of metadata, similar to KVC-compliant Objective-C classes.
// ****************************************************************************
///*! @functiongroup Retrieving CGImageMetadataTagRefs from a CGImageMetadataRef */
-/*!
- * @function CGImageMetadataCopyTags
- * @abstract Obtain an array of tags from a CGImageMetadataRef
- * @return Returns an array with a shallow copy of all top-level
- * CGImageMetadataTagRefs in a CGImageMetadataRef.
+
+/**
+ * Returns an array of root-level metadata tags from the specified metadata object.
+ *
+ * - Parameters:
+ * - metadata: The metadata object that contains the tags.
+ *
+ * - Returns: An array that contains a shallow copy of all root-level ``CGImageMetadataTag`` objects. This array contains only the root-level tags. It doesn't contain any nested tags.
*/
IMAGEIO_EXTERN CFArrayRef _iio_Nullable CGImageMetadataCopyTags(CGImageMetadataRef _iio_Nonnull metadata) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataCopyTagWithPath
- * @abstract Searches for a specific CGImageMetadataTag in a CGImageMetadataRef
- * @discussion This is the primary function for clients to obtain specific
- * metadata properties from an image. The 'path' mechanism provides a way to
- * access both simple top-level properties, such as Date & Time, or complex
- * deeply-nested properties with ease.
- * @param metadata A collection of metadata tags.
- * @param parent A parent tag. If NULL, the path is relative to the root of the
- * CGImageMetadataRef (i.e. it is not a child of another property). If the parent
- * is provided, the effective path will be the concatenation of the parent's path
- * and the 'path' parameter. This is useful for accessing array elements or
- * structure fields inside nested tags.
- * @param path A string representing a path to the desired tag. Paths consist of
- * a tag prefix (i.e. "exif") joined with a tag name (i.e. "Flash") by a colon
- * (":"), such as CFSTR("exif:Flash").
- * Elements of ordered and unordered arrays are accessed via 0-based indices inside square [] brackets.
- * Elements of alternate-text arrays are accessed by an RFC 3066 language code inside square [] brackets.
- * Fields of a structure are delimited by a period, '.'.
- * Qualifiers are delimited by the '?' character. Only tags with string values (kCGImageMetadataTypeString)
- * are allowed to have qualifiers - arrays and structures may not contain qualifiers.
+/**
+ * Searches for a specific metadata tag within a metadata collection.
*
- * If parent is NULL, a prefix must be specified for the first tag. Prefixes for
- * all subsequent tags are optional. If unspecified, the prefix is
- * inherented from the nearest parent tag with a prefix. Custom prefixes must be
- * registered using @link CGImageMetadataRegisterNamespaceForPrefix @/link prior to use
- * in any path-based functions.
+ * - Parameters:
+ * - metadata: The metadata object that contains the tags.
+ * - parent: The parent tag, if any. Specify `NULL` to start the search in the top-level tags of the metadata object. If this parameter is `NULL`, you must include a valid prefix string in the `path` parameter.
+ * - path: A string that represents the path to the tag. A path consists of the tag's name, plus optional prefix and parent information. Separate prefix information from other path information using a colon (`:`) character. Separate parent and child tags using the period (`.`) character. For example, the string `“exif:Flash.RedEyeMode”` represents the path to the `RedEyeMode` field of the `Flash` parent structure in the EXIF metadata.
*
- * Examples:
- * <ul>
- * <li>'path' = CFSTR("xmp:CreateDate")</li>
- * <li>'path' = CFSTR("exif:Flash.Fired")</li>
- * <li>'parent' = tag at path CFSTR("exif:Flash"), path = CFSTR("exif:Fired") (equivilent to previous)</li>
- * <li>'path' = CFSTR("exif:Flash.RedEyeMode")</li>
- * <li>'path' = CFSTR("dc:title")</li>
- * <li>'path' = CFSTR("dc:subject")</li>
- * <li>'path' = CFSTR("dc:subject[2]") </li>
- * <li>'parent' = tag at path CFSTR("dc:subject"), path = CFSTR("[2]") (equivilent to previous)</li>
- * <li>'path' = CFSTR("dc:description[x-default])"</li>
- * <li>'path' = CFSTR("dc.description[de])"</li>
- * <li>'path' = CFSTR("dc.description[fr])"</li>
- * <li>'path' = CFSTR("foo:product)"</li>
- * <li>'path' = CFSTR("foo:product?bar:manufacturer)"</li>
- * </ul>
- * @return Returns a copy of CGImageMetadataTag matching 'path', or NULL if no
- * match is found. The copy of the tag's value is shallow. Tags
- * copied from an immutable CGImageMetadataRef are also immutable. Because this
- * function returns a copy of the tag's value, any modification of the tag's
- * value must be followed by a CGImageMetadataSetTagWithPath to commit the
- * change to the metadata container.
+ * When a tag contains an ordered or unordered array, specify elements using a `0`-based index inside square brackets. For example, use the string `“dc.subject[2]”` to access the third element in the `subject` array.
+ *
+ * When the tag contains an alternate-text array, access elements using an RFC 3066 language code inside square brackets. For example, use the string `“dc.description[de]”` to access the German description information.
+ *
+ * Use the ? character to delimit qualifiers for tags with string values. You may not use this character for arrays and structures.
+ *
+ * - Returns: A copy of the ``CGImageMetadataTag`` object at the specified path, or `NULL` if the tag wasn't found.
+ *
+ * If you specify a valid tag in the `parent` parameter, you may omit the parent's path information from the `path` parameter. For example, to access the `RedEyeMode` field, specify the ``CGImageMetadataTag`` object for the `Flash` parent property, and specify `“RedEyeMode”` for the path string.
+ *
+ * If a tag contains a custom prefix that is not already present in the metadata object, call ``CGImageMetadataRegisterNamespaceForPrefix(_:_:_:_:)`` to register that prefix before you search for it with this function.
*/
IMAGEIO_EXTERN CGImageMetadataTagRef _iio_Nullable CGImageMetadataCopyTagWithPath(CGImageMetadataRef _iio_Nonnull metadata, CGImageMetadataTagRef _iio_Nullable parent, CFStringRef _iio_Nonnull path) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataCopyStringValueWithPath
- * @abstract Searches for a specific tag in a CGImageMetadataRef and returns its
- * string value.
- * @discussion This is a convenience method for searching for a tag at path and
- * extracting the string value.
- * @param metadata A collection of metadata tags.
- * @param parent A parent tag. If NULL, the path is relative to the root of the
- * CGImageMetadataRef (i.e. it is not a child of another property).
- * @param path A string with the path to the desired tag. Please consult
- * the documentation of @link CGImageMetadataCopyTagWithPath @/link for
- * information about path syntax.
- * @return Returns a string from a CGImageMetadataTag located at 'path'. The
- * tag must be of type kCGImageMetadataTypeString or kCGImageMetadataTypeAlternateText.
- * For AlternateText tags, the element with the "x-default" language qualifier
- * will be returned. For other types, NULL will be returned.
+/**
+ * Searches the metadata for the specified tag, and returns its string value if it exists.
+ *
+ * - Parameters:
+ * - metadata: The metadata object to search.
+ * - parent: The parent tag, if any. Specify `NULL` to start the search in the top-level tags of the metadata object. If this parameter is `NULL`, you must include a valid prefix string in the `path` parameter.
+ * - path: A string that represents the path to the tag. A path consists of the tag's name, plus optional prefix and parent information. Separate prefix information from other path information using a colon (`:`) character. Separate parent and child tags using the period (`.`) character. For example, the string `“exif:Flash.RedEyeMode”` represents the path to the `RedEyeMode` field of the `Flash` parent structure in the EXIF metadata.
+ *
+ * When a tag contains an ordered or unordered array, specify elements using a `0`-based index inside square brackets. For example, use the string `“dc.subject[2]”` to access the third element in the `subject` array.
+ *
+ * When the tag contains an alternate-text array, access elements using an RFC 3066 language code inside square brackets. For example, use the string `“dc.description[de]”` to access the German description information.
+ *
+ * Use the ? character to delimit qualifiers for tags with string values. You may not use this character for arrays and structures.
+ *
+ * - Returns: The string value for the specified tag, or `NULL` if the tag wasn't found or doesn't contain a string value.
+ *
+ * The XMP type of the property at the specified path must be ``CGImageMetadataType/string`` or ``CGImageMetadataType/alternateText``. If the property contains alternate text, this function returns the element with the `x-default` language qualifier.
*/
IMAGEIO_EXTERN CFStringRef _iio_Nullable CGImageMetadataCopyStringValueWithPath(CGImageMetadataRef _iio_Nonnull metadata, CGImageMetadataTagRef _iio_Nullable parent, CFStringRef _iio_Nonnull path) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -357,123 +409,101 @@
// Functions for modifying a CGMutableImageMetadataRef
// ****************************************************************************
///*! @functiongroup Modifying a CGMutableImageMetadataRef */
-/*!
- * @function CGImageMetadataRegisterNamespaceForPrefix
- * @abstract Associates an XMP namespace URI with a prefix string.
- * @discussion This allows ImageIO to create custom metadata when it encounters
- * an unrecognized prefix in a path (see CGImageMetadataCopyTagWithPath for more
- * information about path syntax). A namespace must be registered before it can
- * be used to add custom metadata. All namespaces found in the image's metadata,
- * or defined as a constant above, will be pre-registered. Namespaces and
- * prefixes must be unique.
- * @return Returns true if successful. Returns false and sets 'err' if an error
- * or conflict occurs.
+
+/**
+ * Registers the specified namespace and prefix with the metadata object.
+ *
+ * - Parameters:
+ * - metadata: The metadata object in which to register the namespace.
+ * - xmlns: The namespace to register. Specify a string with a custom namespace URI. A custom namespace must be a valid XML namespace. By convention, namespaces end with either the `/` or `#` character.
+ * - prefix: An abbreviation for the XML namespace. You must specify a valid string for custom namespace.
+ * - err: A pointer to an error object. If an error occurs, this function assigns an error object to this parameter.
+ *
+ * - Returns: `true` if registration of the namespace was successful, or `false` if it wasn't.
+ *
+ * All tags you add to a ``CGMutableImageMetadata`` object must belong to known namespaces. When you encounter an unrecognized prefix in a metadata path, call this function to register the prefix before you add the corresponding tag.
+ *
+ * You don't need to register the standard metadata spaces, or any metadata spaces that are already present in the image's metadata. Register only the namespaces you need to support additional metadata tags.
+ *
+ * If the namespace already exists and the `prefix` parameter conflicts with the already registered prefix, this function returns `false` and places an error object in the `err` parameter. However, if the prefix matches what's registered, this method returns `true`.
*/
IMAGEIO_EXTERN bool CGImageMetadataRegisterNamespaceForPrefix(CGMutableImageMetadataRef _iio_Nonnull metadata, CFStringRef _iio_Nonnull xmlns, CFStringRef _iio_Nonnull prefix, _iio_Nullable CFErrorRef * _iio_Nullable err) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataSetTagWithPath
- * @abstract Sets the tag at a specific path in a CGMutableImageMetadata container or a parent tag
- * @discussion This is the primary function for adding new metadata tags to a
- * metadata container, or updating existing tags. All tags required to reach
- * the final tag (at the end of the path) will be created, if needed. Tags will
- * created with default types (ordered arrays). Creating tags will fail if a
- * prefix is encountered that has not been registered. Use
- * @link CGImageMetadataRegisterNamespaceForPrefix @/link to associate a prefix
- * with a namespace prior to using a path-based CGImageMetadata function.
- * Note that if a parent tag is provided,
- * the children of that tag reference will be modified, which may be a different
- * reference from the tag stored in the metadata container. Since tags are normally
- * obtained as a copy, it is typically neccesary to use CGImageMetadataSetTagWithPath
- * to commit the changed parent object back to the metadata container (using
- * the parent's path and NULL for the parent).
- * @param metadata A mutable collection of metadata tags.
- * Use @link CGImageMetadataCreateMutableCopy @/link or
- * @link CGImageMetadataCreateMutable @/link to obtain a mutable metadata container.
- * @param parent A parent tag. If NULL, the path is relative to the root of the
- * CGImageMetadataRef (i.e. it is not a child of another property).
- * Note that if a parent tag is provided,
- * the children of that tag reference will be modified, which may be a different
- * reference from the tag stored in the metadata container. Since tags are normally
- * obtained as a copy, it is typically neccesary to use CGImageMetadataSetTagWithPath
- * to commit the changed parent object back to the metadata container (using
- * the parent's path and NULL for the parent).
- * @param path A string with the path to the desired tag. Please consult
- * the documentation of @link CGImageMetadataCopyTagWithPath @/link for
- * information about path syntax.
- * @param tag The CGImageMetadataTag to be added to the metadata. The tag
- * will be retained.
- * @return Returns true if successful, false otherwise.
+/**
+ * Sets the tag at the specified path in the metadata object.
+ *
+ * - Parameters:
+ * - metadata: The metadata object that contains the tag. If the tag doesn't exist in this metadata object, this function creates a new tag.
+ * - parent: The parent tag, if any. Specify `NULL` to add or update a tag starting at the top-level of the metadata object. If this parameter is `NULL`, you must include a valid prefix string in the `path` parameter.
+ *
+ * If you specify a value for this parameter, this function modifies the children its children, which might create different references for those children. To fix the references, commit this object back to the metadata object using this function. Pass the parent's full path string; don't specify the parent using a parent object and relative path.
+ * - path: A string that represents the path to the tag. A path consists of the tag's name, plus optional prefix and parent information. Separate prefix information from other path information using a colon (`:`) character. Separate parent and child tags using the period (`.`) character. For example, the string `“exif:Flash.RedEyeMode”` represents the path to the `RedEyeMode` field of the `Flash` parent structure in the EXIF metadata.
+ *
+ * When a tag contains an ordered or unordered array, specify elements using a `0`-based index inside square brackets. For example, use the string `“dc.subject[2]”` to access the third element in the `subject` array.
+ *
+ * When the tag contains an alternate-text array, access elements using an RFC 3066 language code inside square brackets. For example, use the string `“dc.description[de]”` to access the German description information.
+ *
+ * Use the ? character to delimit qualifiers for tags with string values. You may not use this character for arrays and structures.
+ * - tag: The tag object to add to the metadata. This function retains the tag object.
+ *
+ * - Returns: `true` if the function saved the tag successfully, or `false` if it encountered a problem.
*/
IMAGEIO_EXTERN bool CGImageMetadataSetTagWithPath(CGMutableImageMetadataRef _iio_Nonnull metadata, CGImageMetadataTagRef _iio_Nullable parent, CFStringRef _iio_Nonnull path, CGImageMetadataTagRef _iio_Nonnull tag) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataSetValueWithPath
- * @abstract Sets the value of the tag at a specific path in a CGMutableImageMetadataRef container or a parent tag
- * @discussion This function is used to add new metadata values to a
- * metadata container, or update existing tag values. All tags required to reach
- * the final tag (at the end of the path) are created, if needed. Tags are
- * created with default types (i.e. arrays will be ordered). Creating tags will
- * fail if a prefix is encountered that has not been registered. Use
- * @link CGImageMetadataRegisterNamespaceForPrefix @/link to associate a prefix
- * with a namespace prior to using a path-based CGImageMetadata function.
+/**
+ * Update the value of an existing metadata tag, or create a new tag using the specified information.
*
- * Examples
- * <ul>
- * <li>'path' = CFSTR("xmp:CreateDate"), 'value' = CFSTR("2011-09-20T14:54:47-08:00")</li>
- * <li>'path' = CFSTR("dc:subject[0]"), 'value' = CFSTR("San Francisco")</li>
- * <li>'path' = CFSTR("dc:subject[1]"), 'value' = CFSTR("Golden Gate Bridge")</li>
- * <li>'path' = CFSTR("dc:description[en]") 'value' = CFSTR("my image description")</li>
- * <li>'path' = CFSTR("dc:description[de]") 'value' = CFSTR("meine bildbeschreibung")</li>
- * </ul>
- * Note that if a parent tag is provided,
- * the children of that tag reference will be modified, which may be a different
- * reference from the tag stored in the metadata container. Since tags are normally
- * obtained as a copy, it is typically neccesary to use CGImageMetadataSetTagWithPath
- * to commit the changed parent object back to the metadata container (using
- * the parent's path and NULL for the parent).
- * @param metadata A mutable collection of metadata tags.
- * Use @link CGImageMetadataCreateMutableCopy @/link or
- * @link CGImageMetadataCreateMutable @/link to obtain a mutable metadata container.
- * @param parent A parent tag. If NULL, the path is relative to the root of the
- * CGImageMetadataRef (i.e. it is not a child of another property).
- * @param path A string with the path to the desired tag. Please consult
- * the documentation of @link CGImageMetadataCopyTagWithPath @/link for
- * information about path syntax.
- * @param value The value to be added to the CGImageMetadataTag matching the path.
- * The tag will be retained. The restrictions for the value are the same as in @link
- * CGImageMetadataTagCreate @/link.
- * @return Returns true if successful, false otherwise.
+ * - Parameters:
+ * - metadata: The metadata object that contains the tag. If the tag doesn't exist in this metadata object, this function creates a new tag.
+ * - parent: The parent tag, if any. Specify `NULL` to add or update a tag starting at the top-level of the metadata object. If this parameter is `NULL`, you must include a valid prefix string in the `path` parameter.
+ * - path: A string that represents the path to the tag. A path consists of the tag's name, plus optional prefix and parent information. Separate prefix information from other path information using a colon (`:`) character. Separate parent and child tags using the period (`.`) character. For example, the string `“exif:Flash.RedEyeMode”` represents the path to the `RedEyeMode` field of the `Flash` parent structure in the EXIF metadata.
+ *
+ * When a tag contains an ordered or unordered array, specify elements using a `0`-based index inside square brackets. For example, use the string `“dc.subject[2]”` to access the third element in the `subject` array.
+ *
+ * When the tag contains an alternate-text array, access elements using an RFC 3066 language code inside square brackets. For example, use the string `“dc.description[de]”` to access the German description information.
+ *
+ * Use the ? character to delimit qualifiers for tags with string values. You may not use this character for arrays and structures.
+ * - value: The new value for the property. The new value's type must match the expected XMP type of the property at the specified `path`.
+ *
+ * - Returns: `true` if this function set the tag successfully, or `false` if a problem occurred.
+ *
+ * As needed, this function creates any intermediate tags that are required to create the tag at the specified path. This function creates each tag with default types. Tag creation fails if the path includes an unregistered prefix.
+ *
+ * If you specify a tag object in the `parent` parameter, this function modifies the children of that tag, which might create different references for those children. To fix the references, commit the changed parent back to the metadata object using the ``CGImageMetadataSetTagWithPath(_:_:_:_:)`` function. Pass the parent's full path string when calling that function; don't specify the parent using a parent object and relative path.
*/
IMAGEIO_EXTERN bool CGImageMetadataSetValueWithPath(CGMutableImageMetadataRef _iio_Nonnull metadata, CGImageMetadataTagRef _iio_Nullable parent, CFStringRef _iio_Nonnull path, CFTypeRef _iio_Nonnull value) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataRemoveTagWithPath
- * @abstract Removes the tag at a specific path from a CGMutableImageMetadata container or from the parent tag
- * @discussion Use this function to delete a metadata tag matching a specific
- * path from a mutable metadata container. Note that if a parent tag is provided,
- * the children of that tag reference will be modified, which may be a different
- * reference from the tag stored in the metadata container. Since tags are normally
- * obtained as a copy, it is typically neccesary to use CGImageMetadataSetTagWithPath
- * to commit the changed parent object back to the metadata container (using
- * the parent's path and NULL for the parent).
- * @param parent A parent tag. If NULL, the path is relative to the root of the
- * CGImageMetadataRef (i.e. it is not a child of another property).
- * @param path A string with the path to the desired tag. Please consult
- * the documentation of @link CGImageMetadataCopyTagWithPath @/link for
- * information about path syntax.
+/**
+ * Removes the tag at the specified path from the metadata object.
+ *
+ * - Parameters:
+ * - metadata: The metadata object that contains the tag. If the tag doesn't exist in this metadata object, this function creates a new tag.
+ * - parent: The parent tag, if any. Specify `NULL` to add or update a tag starting at the top-level of the metadata object. If this parameter is `NULL`, you must include a valid prefix string in the `path` parameter.
+ *
+ * If you specify a value for this parameter, this function modifies the children its children, which might create different references for those children. To fix the references, commit this object back to the metadata object using this function. Pass the parent's full path string; don't specify the parent using a parent object and relative path.
+ * - path: A string that represents the path to the tag. A path consists of the tag's name, plus optional prefix and parent information. Separate prefix information from other path information using a colon (`:`) character. Separate parent and child tags using the period (`.`) character. For example, the string `“exif:Flash.RedEyeMode”` represents the path to the `RedEyeMode` field of the `Flash` parent structure in the EXIF metadata.
+ *
+ * When a tag contains an ordered or unordered array, specify elements using a `0`-based index inside square brackets. For example, use the string `“dc.subject[2]”` to access the third element in the `subject` array.
+ *
+ * When the tag contains an alternate-text array, access elements using an RFC 3066 language code inside square brackets. For example, use the string `“dc.description[de]”` to access the German description information.
+ *
+ * Use the ? character to delimit qualifiers for tags with string values. You may not use this character for arrays and structures.
+ *
+ * - Returns: true if this function removed the tag, or false if it encountered a problem.
*/
IMAGEIO_EXTERN bool CGImageMetadataRemoveTagWithPath(CGMutableImageMetadataRef _iio_Nonnull metadata, CGImageMetadataTagRef _iio_Nullable parent, CFStringRef _iio_Nonnull path) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
#ifdef __BLOCKS__
/* Iterating through tags of CGImageMetadataRef */
-/*!
- * @typedef CGImageMetadataTagBlock
- * @abstract The block type used by CGImageMetadataEnumerateTagsUsingBlock
- * @param path The full path to the tag in the metadata container.
- * @param tag The CGImageMetadataTagRef corresponding to the path in metadata.
- * @return Return true to continue iterating through the tags, or return false to stop.
+/**
+ * The block to execute when enumerating the tags of a metadata object.
+ *
+ * - Parameters:
+ * - path: The full path to the tag in the metadata container.
+ * - tag: The ``CGImageMetadataTag`` object that contains the tag information. Never modify this object from your block. If you want to change the tag, save a reference to it and make your changes later.
+ *
+ * - Returns: `true` to continue enumerating the tags, or `false` to stop.
*/
typedef bool(^CGImageMetadataTagBlock)(CFStringRef _iio_Nonnull path, CGImageMetadataTagRef _iio_Nonnull tag);
@@ -483,23 +513,26 @@
// The block should return true to continue enumeration, or false to stop.
// Behavior is undefined if 'metadata' is modified during enumeration.
-/*!
- * @function CGImageMetadataEnumerateTagsUsingBlock
- * @abstract Executes a given block using each tag in the metadata
- * @discussion This function iterates over all of the tags in a
- * CGImageMetadataRef, executing the block for each tag. The default behavior
- * iterates over all top-level tags in the metadata. The path of the tag and
- * the tag itself is passed to the block. The metadata cannot be modified inside
- * the block - consider adding the tags of interest into another collection.
- * @param metadata A collection of metadata tags.
- * @param rootPath Iteration will occur for all children of the tag matching
- * the root path. Please refer to CGImageMetadataCopyTagWithPath for information
- * about path syntax. If NULL or an empty string, the block will be executed
- * for all top-level tags in the metadata container.
- * @param options A dictionary of options for iterating through the tags.
- * Currently the only supported option is kCGImageMetadataEnumerateRecursively,
- * which should be set to a CFBoolean.
- * @param block The block that is executed for each tag in metadata.
+/**
+ * Enumerates the tags of a metadata object and executes the specified block on each tag.
+ *
+ * - Parameters:
+ * - metadata: The metadata object that contains the tags to enumerate.
+ * - rootPath: A string that contains the path to the root tag. Specify `NULL` to enumerate the top-level tags in the metadata object.
+ *
+ * A path consists of the tag's name, plus optional prefix and parent information. Separate prefix information from other path information using a colon (`:`) character. Separate parent and child tags using the period (`.`) character. For example, the string `“exif:Flash.RedEyeMode”` represents the path to the `RedEyeMode` field of the `Flash` parent structure in the EXIF metadata.
+ *
+ * When a tag contains an ordered or unordered array, specify elements using a `0`-based index inside square brackets. For example, use the string `“dc.subject[2]”` to access the third element in the `subject` array.
+ *
+ * When the tag contains an alternate-text array, access elements using an RFC 3066 language code inside square brackets. For example, use the string `“dc.description[de]”` to access the German description information.
+ *
+ * Use the ? character to delimit qualifiers for tags with string values. You may not use this character for arrays and structures.
+ * - options: A dictionary of additional options. Currently, the only supported option is ``kCGImageMetadataEnumerateRecursively``.
+ * - block: The block to execute for each tag. For more information, see ``CGImageMetadataTagBlock``.
+ *
+ * This function iterates over the tags in the specified metadata object. By default, it iterates over only the top-level tags. Include the ``kCGImageMetadataEnumerateRecursively`` constant in the `options` parameter to iterate over all tags recursively.
+ *
+ * You must not modify the tag information from your block. Instead, use your block only to read information from the tags. If you need to modify any tags, add those tags to a collection object and modify them after this function finishes its enumeration.
*/
IMAGEIO_EXTERN void CGImageMetadataEnumerateTagsUsingBlock(CGImageMetadataRef _iio_Nonnull metadata, CFStringRef _iio_Nullable rootPath, CFDictionaryRef _iio_Nullable options, CGImageMetadataTagBlock _iio_Nonnull block) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
#endif
@@ -508,6 +541,13 @@
// the value should be a CFBoolean. If true, tags will be enumerated recursively,
// if false, only the direct children of 'rootPath' will be enumerated.
// The default is non-recursive.
+/**
+ * An option to enumerate recursively through a set of metadata tags.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. Set the value to <doc://com.apple.documentation/documentation/driverkit/kosbooleantrue> to enumerate all tags recursively. Set the value to <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse> to enumerate only the direct children of the root path you specify.
+ *
+ * When you call ``CGImageMetadataEnumerateTagsUsingBlock(_:_:_:_:)``, include this option if you want the enumeration behavior to search recursively through the available tags. If you don't specify this key, the function behaves as if the value is false.
+ */
IMAGEIO_EXTERN const CFStringRef _iio_Nonnull kCGImageMetadataEnumerateRecursively IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -522,57 +562,37 @@
// ****************************************************************************
///*! @functiongroup Working with CGImageProperties */
-/*!
- * @function CGImageMetadataCopyTagMatchingImageProperty
- * @abstract Searches for a specific CGImageMetadataTag matching a kCGImageProperty constant
- * @discussion Provides a bridge for values from CGImageCopyPropertiesAtIndex, simplifying
- * access for properties defined in EXIF and IPTC standards, which have no notion of
- * namespaces, prefixes, or XMP property types.
- * Metadata Working Group guidance is factored into the mapping of CGImageProperties to
- * XMP compatible CGImageMetadataTags.
- * For example, kCGImagePropertyExifDateTimeOriginal will get the value of the
- * corresponding XMP tag, which is photoshop:DateCreated. Note that property values will
- * still be in their XMP forms, such as "YYYY-MM-DDThh:mm:ss" for DateTime, rather than
- * the EXIF or IPTC DateTime formats.
- * @param metadata A collection of metadata tags
- * @param dictionaryName the metadata subdictionary to which the image property belongs,
- * such as kCGImagePropertyExifDictionary or kCGImagePropertyIPTCDictionary. Not all
- * dictionaries and properties are supported at this time.
- * @param propertyName the name of the property. This must be a defined property constant
- * corresponding to the 'dictionaryName'. For example, kCGImagePropertyTIFFOrientation,
- * kCGImagePropertyExifDateTimeOriginal, or kCGImagePropertyIPTCKeywords. A warning
- * will be logged if the CGImageProperty is unsupported by CGImageMetadata.
- * @return Returns a CGImageMetadataTagRef with the appropriate namespace, prefix,
- * tag name, and XMP value for the corresponding CGImageProperty. Returns NULL if the
- * property could not be found.
+
+/**
+ * Searches for the specified image property and, if found, returns the corresponding tag object.
+ *
+ * - Parameters:
+ * - metadata: The metadata object to search.
+ * - dictionaryName: The metadata subdictionary to which the image property belongs. For example, specify ``kCGImagePropertyExifDictionary`` for image properties that are part of the image's EXIF metadata.
+ * - propertyName: The name of the property. For example, specify ``kCGImagePropertyTIFFOrientation``, ``kCGImagePropertyExifDateTimeOriginal``, or ``kCGImagePropertyIPTCKeywords``. If the specified property is unsupported by the metadata object, this function logs a warning.
+ *
+ * - Returns: The ``CGImageMetadataTag`` object that corresponds to the specified property, or `NULL` if the property wasn't found.
+ *
+ * Use this function to quickly search the different metadata dictionaries for a specific tag. The returned tag object contains appropriate values for all fields, including the namespace, prefix, and XMP type.
+ *
+ * When you request an EXIF or IPTC property, this function fills in the namespace, prefix, and XMP type information by copying information from an appropriate XMP type. For example, when you request the ``kCGImagePropertyExifDateTimeOriginal`` property, the function fills in the information using the `photoshop:DateTime` XMP tag. When this bridging occurs, property fields retain their XMP format, rather than the EXIF or IPTC format.
*/
IMAGEIO_EXTERN CGImageMetadataTagRef _iio_Nullable CGImageMetadataCopyTagMatchingImageProperty(CGImageMetadataRef _iio_Nonnull metadata, CFStringRef _iio_Nonnull dictionaryName, CFStringRef _iio_Nonnull propertyName) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataSetValueMatchingImageProperty
- * @abstract Sets the value of the CGImageMetadataTag matching a kCGImageProperty constant
- * @discussion Provides a bridge for values from CGImageCopyPropertiesAtIndex, simplifying
- * changing property values defined in EXIF and IPTC standards, which have no notion of
- * namespaces, prefixes, or XMP property types.
- * Metadata Working Group guidance is factored into the mapping of CGImageProperties to
- * XMP compatible CGImageMetadataTags.
- * For example, setting kCGImagePropertyExifDateTimeOriginal will set the value of the
- * corresponding XMP tag, which is photoshop:DateCreated. Note that property values should
- * still be in their XMP forms, such as "YYYY-MM-DDThh:mm:ss" for DateTime, rather than
- * the EXIF or IPTC DateTime formats. Although this function will allow the caller to set
- * custom values for these properties, you should consult the appropriate specifications
- * for details about property value formats for EXIF and IPTC tags in XMP.
- * @param metadata A mutable collection of metadata tags
- * @param dictionaryName the metadata subdictionary to which the image property belongs,
- * such as kCGImagePropertyExifDictionary or kCGImagePropertyIPTCDictionary. Not all
- * dictionaries and properties are supported at this time.
- * @param propertyName the name of the property. This must be a defined property constant
- * corresponding to the 'dictionaryName'. For example, kCGImagePropertyTIFFOrientation,
- * kCGImagePropertyExifDateTimeOriginal, or kCGImagePropertyIPTCKeywords. A warning
- * will be logged if the CGImageProperty is unsupported by CGImageMetadata.
- * @param value A CFTypeRef with the value for the tag. The same value restrictions apply
- * as in @link CGImageMetadataTagCreate @/link.
- * @return Returns true if successful, false otherwise.
+/**
+ * Updates the value of the metadata tag assigned to the specified image property.
+ *
+ * - Parameters:
+ * - metadata: The metadata object that contains the tag.
+ * - dictionaryName: The metadata subdictionary to which the image property belongs. For example, specify ``kCGImagePropertyExifDictionary`` for image properties that are part of the image's EXIF metadata. This function doesn't support all dictionaries.
+ * - propertyName: The name of the property. For example, specify ``kCGImagePropertyTIFFOrientation``, ``kCGImagePropertyExifDateTimeOriginal``, or ``kCGImagePropertyIPTCKeywords``. If the specified property is unsupported by the metadata object, this function logs a warning.
+ * - value: The new value for the property. The new value's type must match the XMP type of the metadata tag.
+ *
+ * - Returns: `true` if this function set the tag successfully, or `false` if a problem occurred.
+ *
+ * Use this function to update the value of a property in the specified metadata collection. If you try to set the value of an EXIF or IPTC property, this function matches it to an appropriate XMP tag. For example, when you set the value of the ``kCGImagePropertyExifDateTimeOriginal`` property, this function sets the value of the `photoshop:DateTime` XMP tag.
+ *
+ * If the metdata object doesn't contain the tag, this function creates it and populates it with appropriate XMP information.
*/
IMAGEIO_EXTERN bool CGImageMetadataSetValueMatchingImageProperty(CGMutableImageMetadataRef _iio_Nonnull metadata, CFStringRef _iio_Nonnull dictionaryName, CFStringRef _iio_Nonnull propertyName, CFTypeRef _iio_Nonnull value) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
@@ -582,48 +602,59 @@
// ****************************************************************************
///*! @functiongroup Reading and Writing XMP */
-/*!
- * @function CGImageMetadataCreateXMPData
- * @abstract Serializes the CGImageMetadataRef to XMP data
- * @discussion This converts all of the metadata tags to a block of XMP data. Common uses
- * include creating sidecar files that contain metadata for image formats that do not
- * support embedded XMP, or cannot be edited due to other format restrictions (such as
- * proprietary RAW camera formats).
- * @param metadata A collection of metadata tags.
- * @param options should be NULL. Options are currently not used, but may be used in
- * future release.
- * @return Returns a CFData containing an XMP representation of the metadata. Returns
- * NULL if an error occurred.
+/**
+ * Returns a data object that contains the metadata object's contents serialized into the XMP format.
+ *
+ * - Parameters:
+ * - metadata: The metadata object to serialize. The function converts all tags in this object to XMP data.
+ * - options: Additional options for the serialization process. Options aren't currently supported, so specify `NULL`.
+ *
+ * - Returns: A <doc://com.apple.documentation/documentation/corefoundation/cfdata> object with an XMP representation of the metadata, or `NULL` if an error occurs.
+ *
+ * Use this function to create sidecar files with metadata for image formats that don't support embedded XMP, or that you cannot edit due to other format restrictions. For example, use this function to create the data for proprietary RAW camera formats.
*/
IMAGEIO_EXTERN CFDataRef _iio_Nullable CGImageMetadataCreateXMPData (CGImageMetadataRef _iio_Nonnull metadata, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @function CGImageMetadataCreateFromXMPData
- * @abstract Creates a collection of CGImageMetadataTags from a block of XMP data
- * @discussion Converts XMP data into a collection of metadata tags.
- * The data must be a complete XMP tree. XMP packet headers (<?xpacket .. ?>) are
- * supported.
- * @param data The XMP data.
- * @return Returns a collection of CGImageMetadata tags. Returns NULL if an error occurred.
+/**
+ * Creates a collection of metadata tags from the specified XMP data.
+ *
+ * - Parameters:
+ * - data: An object containin XMP data. The contents of this object must represent a complete XMP tree. The XMP data may include packet headers.
+ *
+ * - Returns: A ``CGImageMetadata`` object that contains the parsed metadata information, or `NULL` if an error occurs. You are responsible for releasing the returned object.
+ *
+ * Use this function to parse the raw XMP data from an image and build a parseable set of metadata tags. Use the returned object to enumerate the tags or search for individual tags within the collection.
*/
IMAGEIO_EXTERN CGImageMetadataRef _iio_Nullable CGImageMetadataCreateFromXMPData (CFDataRef _iio_Nonnull data) IMAGEIO_AVAILABLE_STARTING(10.8, 7.0);
-/*!
- * @constant kCFErrorDomainCGImageMetadata
- * @discussion Error domain for all errors originating in ImageIO for CGImageMetadata APIs.
- * Error codes may be interpreted using the list below.
+/**
+ * The domain for metadata-related errors that originate in the Image I/O framework.
*/
IMAGEIO_EXTERN const CFStringRef _iio_Nonnull kCFErrorDomainCGImageMetadata;
-/*!
- * @enum CGImageMetadataErrors
- * @discussion the list of all error codes returned under the error domain kCFErrorDomainCGImageMetadata
+/**
+ * Constants for errors that occur when getting or setting metadata information.
*/
typedef CF_ENUM(int32_t, CGImageMetadataErrors) {
+ /**
+ * An error that indicates an unknown condition occurred.
+ */
kCGImageMetadataErrorUnknown = 0,
+ /**
+ * An error that indicates the metadata was in an unsupported format.
+ */
kCGImageMetadataErrorUnsupportedFormat = 1,
+ /**
+ * An error that indicates a parameter was malformed or contained invalid data.
+ */
kCGImageMetadataErrorBadArgument = 2,
+ /**
+ * An error that indicates an attempt to save conflicting metadata values.
+ */
kCGImageMetadataErrorConflictingArguments = 3,
+ /**
+ * An error that indicates an attempt to register a namespace with a prefix that is different than the namespace's existing prefix.
+ */
kCGImageMetadataErrorPrefixConflict = 4,
};
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageProperties.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageProperties.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageProperties.h 2026-04-24 21:52:38
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageProperties.h 2026-05-21 09:32:42
@@ -18,29 +18,114 @@
* CGImageSourceCopyPropertiesAtIndex, contain a dictionary of file-format
* or metadata-format specific key-values. */
+/**
+ * A dictionary of key-value pairs for an image that uses Tagged Image File Format (TIFF).
+ *
+ * For more information about the available metadata keys, see <doc:tiff-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that uses Graphics Interchange Format (GIF).
+ *
+ * For more information about the available metadata keys, see <doc:gif-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that uses JPEG File Interchange Format (JFIF).
+ *
+ * For more information about the available metadata keys, see <doc:jfif-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyJFIFDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEIFDictionary IMAGEIO_AVAILABLE_STARTING(13.0, 16.0);
+/**
+ * A dictionary of properties related to an HEIC container.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSDictionary IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * A dictionary of key-value pairs for an image that uses Exchangeable Image File Format (EXIF).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that uses Portable Network Graphics (PNG) format.
+ *
+ * For more information about the available metadata keys, see <doc:png-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that uses International Press Telecommunications Council (IPTC) metadata.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that has Global Positioning System (GPS) information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that contains minimally processed, or raw, data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyRawDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that uses Camera Image File Format (CIFF).
+ *
+ * For more information about the available metadata keys, see <doc:ciff-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image from a Canon camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of key-value pairs for an image from a Nikon camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of key-value pairs for an image from a Minolta camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerMinoltaDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of key-value pairs for an image from a Fuji camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerFujiDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of key-value pairs for an image from a Olympus camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerOlympusDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of key-value pairs for an image from a Pentax camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerPentaxDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of key-value pairs for an Adobe Photoshop image.
+ *
+ * For more information about the available metadata keys, see <doc:8bim-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageProperty8BIMDictionary IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A dictionary of key-value pairs for an image that uses the Digital Negative (DNG) archival format.
+ *
+ * For more information about the available metadata keys, see <doc:dng-image-properties>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * An auxiliary dictionary of key-value pairs for an image that uses Exchangeable Image File Format (EXIF).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxDictionary IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A dictionary of properties specific to the OpenEXR metadata standard.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyOpenEXRDictionary IMAGEIO_AVAILABLE_STARTING(10.9, 11.3);
+/**
+ * A dictionary of key-value pairs for an image from an Apple camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerAppleDictionary IMAGEIO_AVAILABLE_STARTING(10.10, 7.0);
+/**
+ * A dictionary of properties related to the image's on-disk file.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfdictionary>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyFileContentsDictionary IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * A dictionary of properties related to a WebP container.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPDictionary IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAVISDictionary IMAGEIO_AVAILABLE_STARTING(13.0, 16.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTGADictionary IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
@@ -53,6 +138,11 @@
/* The size of the image file in bytes, if known. If present, the value of
* this key is a CFNumberRef. */
+/**
+ * The size of the image file in bytes, if known.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyFileSize IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
@@ -62,18 +152,43 @@
/* The number of pixels in the x- and y-dimensions. The value of these keys
* is a CFNumberRef. */
+/**
+ * The number of pixels along the y-axis of the image.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPixelHeight IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of pixels along the x-axis of the image.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPixelWidth IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The DPI in the x- and y-dimensions, if known. If present, the value of
* these keys is a CFNumberRef. */
+/**
+ * The resolution, in dots per inch, in the y dimension.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDPIHeight IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The resolution, in dots per inch, in the x dimension.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDPIWidth IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The number of bits in each color sample of each pixel. The value of this
* key is a CFNumberRef. */
+/**
+ * The number of bits in the color sample of a pixel.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDepth IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The intended display orientation of the image. If present, the value
@@ -89,314 +204,1098 @@
* 8 = 0th row is on the left, and 0th column is the bottom.
* If not present, a value of 1 is assumed. */
+/**
+ * The intended display orientation of the image.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>. The value encodes the intended display orientation for the image according to the TIFF and EXIF specifications. See the ``CGImagePropertyOrientation`` type for possible values and their meanings.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyOrientation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The value of this key is kCFBooleanTrue if the image contains floating-
* point pixel samples */
+/**
+ * A Boolean value that indicates whether the image contains floating-point pixel samples.
+ *
+ * The value of this property is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue> if the image contains floating-point pixel samples.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIsFloat IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The value of this key is kCFBooleanTrue if the image contains indexed
* (a.k.a. paletted) pixel samples */
+/**
+ * A Boolean value that indicates whether the image contains indexed pixel samples.
+ *
+ * Indexed pixel samples are also known as paletted samples. The value of this property is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue> if the image contains indexed pixel samples.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIsIndexed IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The value of this key is kCFBooleanTrue if the image contains an alpha
* (a.k.a. coverage) channel */
+/**
+ * A Boolean value that indicates whether the image has an alpha channel.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. The value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue> when the image contains an alpha channel.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHasAlpha IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The color model of the image such as "RGB", "CMYK", "Gray", or "Lab".
* The value of this key is CFStringRef. */
+/**
+ * The color model of the image, such as RGB, CMYK, grayscale, or Lab.
+ *
+ * The value of this key is of type <doc://com.apple.documentation/documentation/corefoundation/cfstring>. Typically, the value corresponds to the ``kCGImagePropertyColorModelRGB``, ``kCGImagePropertyColorModelCMYK``, ``kCGImagePropertyColorModelGray``, or ``kCGImagePropertyColorModelLab`` constant.
+ *
+ * A color model describes how color values are represented mathematically. A color space is a color model combined with a definition of how to interpret values within the model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyColorModel IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* The name of the optional ICC profile embedded in the image, if known.
* If present, the value of this key is a CFStringRef. */
+/**
+ * The name of the optional International Color Consortium (ICC) profile embedded in the image, if known.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfstring>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyProfileName IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* For HEIF images: the value of this key is kCFBooleanTrue if the image at the given index is the primary image.
*/
+/**
+ * The index of the primary image in the file.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPrimaryImage IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
/* Possible values for kCGImagePropertyColorModel property */
+/**
+ * A Red Green Blue (RGB) color model.
+ *
+ * Use this value with the ``kCGImagePropertyColorModel`` key.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyColorModelRGB IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A grayscale color model.
+ *
+ * Use this value with the ``kCGImagePropertyColorModel`` key.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyColorModelGray IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A Cyan Magenta Yellow Black (CMYK) color model.
+ *
+ * Use this value with the ``kCGImagePropertyColorModel`` key.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyColorModelCMYK IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A Lab color model, where color values contain the amount of light and the amounts of four human-perceivable colors.
+ *
+ * Use this value with the ``kCGImagePropertyColorModel`` key.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyColorModelLab IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Possible keys for kCGImagePropertyTIFFDictionary */
+/**
+ * The compression scheme used on the image data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFCompression IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The color space of the image data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFPhotometricInterpretation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The document name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFDocumentName IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The image description.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFImageDescription IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name of the manufacturer of the camera or input device.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFMake IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The camera or input device model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFModel IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The image orientation.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFOrientation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of pixels per resolution unit in the image width direction.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFXResolution IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of pixels per resolution unit in the image height direction.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFYResolution IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFXPosition IMAGEIO_AVAILABLE_STARTING(14.4, 17.4);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFYPosition IMAGEIO_AVAILABLE_STARTING(14.4, 17.4);
+/**
+ * The units of resolution.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFResolutionUnit IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name and version of the software used for image creation.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFSoftware IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The transfer function, in tabular format, used to map pixel components from a nonlinear form into a linear form.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFTransferFunction IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The date and time that the image was created.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFDateTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The artist who created the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFArtist IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The computer or operating system used when the image was created.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFHostComputer IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Copyright information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFCopyright IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The white point of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFWhitePoint IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The chromaticities of the primaries of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFPrimaryChromaticities IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFTileWidth IMAGEIO_AVAILABLE_STARTING(10.11, 9.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTIFFTileLength IMAGEIO_AVAILABLE_STARTING(10.11, 9.0);
/* Possible keys for kCGImagePropertyJFIFDictionary */
+/**
+ * The version of JFIF.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyJFIFVersion IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The x pixel density.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyJFIFXDensity IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The y pixel density.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyJFIFYDensity IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The units for the x and y density fields.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyJFIFDensityUnit IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Whether there are versions of the image of increasing quality.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyJFIFIsProgressive IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Possible keys for kCGImagePropertyHEICSDictionary */
+/**
+ * The number of times to play the sequence.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSLoopCount IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The number of seconds to wait before displaying the next image in the sequence, clamped to a minimum of `0.1` seconds.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value. The value of this key is never less than 100 millseconds, and the system adjusts values less than that amount to 100 milliseconds, as needed. See ``kCGImagePropertyHEICSUnclampedDelayTime``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSDelayTime IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The unclamped number of seconds to wait before displaying the next image in the sequence.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSUnclampedDelayTime IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The width of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSCanvasPixelWidth IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The height of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSCanvasPixelHeight IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * An array of dictionaries that contain timing information for the image sequence.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfarray>. Each <doc://com.apple.documentation/documentation/corefoundation/cfdictionary> in the array contains timing information about an image in the sequence.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHEICSFrameInfoArray IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
/* Possible keys for kCGImagePropertyExifDictionary */
+/**
+ * The exposure time.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifExposureTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The F-number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFNumber IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The exposure program.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifExposureProgram IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The spectral sensitivity of each channel.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSpectralSensitivity IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The ISO speed ratings.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifISOSpeedRatings IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The opto-electric conversion function (OECF) that defines the relationship between the optical input of the camera and the resulting image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifOECF IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The type of sensitivity data stored for the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSensitivityType IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The sensitivity data for the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifStandardOutputSensitivity IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The recommended exposure index.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifRecommendedExposureIndex IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The ISO speed setting used to capture the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifISOSpeed IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The ISO speed latitude yyy value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifISOSpeedLatitudeyyy IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The ISO speed latitude zzz value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifISOSpeedLatitudezzz IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
+/**
+ * The EXIF version.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifVersion IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The original date and time.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifDateTimeOriginal IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The digitized date and time.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifDateTimeDigitized IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifOffsetTime IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifOffsetTimeOriginal IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifOffsetTimeDigitized IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The components configuration for compressed data.
+ *
+ * For compressed data, specifies that the channels of each component are arranged in increasing numeric order (from first component to the fourth).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifComponentsConfiguration IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The bits per pixel of the compression mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifCompressedBitsPerPixel IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The shutter speed value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifShutterSpeedValue IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The aperture value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifApertureValue IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The brightness value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifBrightnessValue IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The exposure bias value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifExposureBiasValue IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The maximum aperture value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifMaxApertureValue IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The distance to the subject, in meters.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubjectDistance IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The metering mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifMeteringMode IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The light source.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifLightSource IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The flash status when the image was shot.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFlash IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The focal length.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFocalLength IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The subject area.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubjectArea IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Information specified by the camera manufacturer.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifMakerNote IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A user comment.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifUserComment IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The fraction of seconds for the date and time tag.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubsecTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The fraction of seconds for the original date and time tag.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubsecTimeOriginal IMAGEIO_AVAILABLE_STARTING(10.11, 10.0);
+/**
+ * The fraction of seconds for the digitized date and time tag.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubsecTimeDigitized IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The FlashPix version supported by an FPXR file.
+ *
+ * FlashPix is a format for multiresolution tiled images that facilitates fast onscreen viewing.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFlashPixVersion IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The color space.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifColorSpace IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The x dimension of a pixel.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifPixelXDimension IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The y dimension of a pixel.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifPixelYDimension IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A sound file related to the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifRelatedSoundFile IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The strobe energy when the image was captured, in beam candle power seconds.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFlashEnergy IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The spatial frequency table and spatial frequency response values in the width, height, and diagonal directions.
+ *
+ * For more information, see ISO 12233.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSpatialFrequencyResponse IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of image-width pixels (x-axis) per focal plane resolution unit.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFocalPlaneXResolution IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of image-height pixels (y-axis) per focal plane resolution unit.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFocalPlaneYResolution IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The unit of measurement for the focal plane x and y resolutions.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFocalPlaneResolutionUnit IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The location of the image's primary subject.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubjectLocation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The selected exposure index.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifExposureIndex IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The sensor type of the camera or input device.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSensingMethod IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The image source.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFileSource IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The scene type.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSceneType IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The color filter array (CFA) pattern, which is the geometric pattern of the image sensor for a 1-chip color sensor area.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifCFAPattern IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Special rendering performed on the image data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifCustomRendered IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The exposure mode setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifExposureMode IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The white balance mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifWhiteBalance IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The digital zoom ratio.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifDigitalZoomRatio IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The equivalent focal length in 35 mm film.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifFocalLenIn35mmFilm IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The scene capture type; for example, standard, landscape, portrait, or night.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSceneCaptureType IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The gain adjustment setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifGainControl IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The contrast setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifContrast IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The saturation setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSaturation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The sharpness setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSharpness IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * For a particular camera mode, indicates the conditions for taking the picture.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifDeviceSettingDescription IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The distance to the subject.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubjectDistRange IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The unique ID of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifImageUniqueID IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A string with the name of the camera's owner.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifCameraOwnerName IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string with the serial number of the camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifBodySerialNumber IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * The specification information for the camera lens.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifLensSpecification IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string with the name of the lens manufacturer.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifLensMake IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string with the lens model information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifLensModel IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string with the lens's serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifLensSerialNumber IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * The gamma setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifGamma IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifCompositeImage IMAGEIO_AVAILABLE_STARTING(10.15.1, 13.1);
+/**
+ * The number of images that make up a composite image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSourceImageNumberOfCompositeImage IMAGEIO_AVAILABLE_STARTING(10.15.1, 13.1);
+/**
+ * The exposure times for composite images.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSourceExposureTimesOfCompositeImage IMAGEIO_AVAILABLE_STARTING(10.15.1, 13.1);
/* Deprecated. See kCGImagePropertyExifSubsecTimeOriginal */
+/**
+ * The fraction of seconds for the original date and time tag.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifSubsecTimeOrginal IMAGEIO_AVAILABLE_BUT_DEPRECATED(10.4, 10.11, 4.0, 10.0);
/* Possible keys for kCGImagePropertyExifAuxDictionary */
+/**
+ * Lens information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxLensInfo IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxLensModel IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens ID.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxLensID IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxLensSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxImageNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * Flash compensation.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxFlashCompensation IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The owner name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxOwnerName IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * Firmware information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifAuxFirmware IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
/* Possible keys for kCGImagePropertyGIFDictionary */
+/**
+ * The number of times to repeat an animated sequence.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFLoopCount IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of seconds to wait before displaying the next image in an animated sequence, clamped to a minimum of 100 milliseconds.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value. The value of this key is never less than 100 millseconds, and the system adjusts values less than that amount to 100 milliseconds, as needed. See ``kCGImagePropertyGIFUnclampedDelayTime``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFDelayTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The image color map.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFImageColorMap IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A Boolean value that indicates whether the GIF has a global color map.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFHasGlobalColorMap IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of seconds to wait before displaying the next image in an animated sequence.
+ *
+ * This value may be `0` milliseconds or higher. Unlike the ``kCGImagePropertyGIFDelayTime`` property, this value is not clamped at the low end of the range.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFUnclampedDelayTime IMAGEIO_AVAILABLE_STARTING(10.7, 4.0);
+/**
+ * The width of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFCanvasPixelWidth IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The height of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFCanvasPixelHeight IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * An array of dictionaries that contain timing information for the image sequence.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfarray>. Each <doc://com.apple.documentation/documentation/corefoundation/cfdictionary> in the array contains timing information about an image in the sequence.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGIFFrameInfoArray IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
/* Possible keys for kCGImagePropertyPNGDictionary */
+/**
+ * A string that identifies the author of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGAuthor IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * The chromaticities.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGChromaticities IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A string that contains image comments.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGComment IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A string that identifies the copyright of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGCopyright IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string that identifies the date and time the image was created.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGCreationTime IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string that describes the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGDescription IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A disclaimer string.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGDisclaimer IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The gamma value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGGamma IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The interlace type.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGInterlaceType IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A string that identifies the last date and time the image was modified.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGModificationTime IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A string that identifies the software used to create the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGSoftware IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGSource IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The sRGB intent.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGsRGBIntent IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A string that holds the image's title.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGTitle IMAGEIO_AVAILABLE_STARTING(10.7, 5.0);
+/**
+ * A warning string.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGWarning IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The number of x pixels per meter.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGXPixelsPerMeter IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The number of y pixels per meter.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGYPixelsPerMeter IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGPixelsAspectRatio IMAGEIO_AVAILABLE_STARTING(12.0, 15.0);
+/**
+ * The number of times that an animated PNG should play through its frames before stopping.
+ *
+ * A value of `0` means the PNG repeats forever.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAPNGLoopCount IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
+/**
+ * The number of seconds to wait before displaying the next image in an animated sequence.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value. The value of this key is never less than 50 millseconds, and the system adjusts values less than that amount to 50 milliseconds, as needed. See ``kCGImagePropertyAPNGUnclampedDelayTime``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAPNGDelayTime IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
+/**
+ * The number of seconds to wait before displaying the next image in an animated sequence.
+ *
+ * This value may be `0` milliseconds or higher. Unlike the ``kCGImagePropertyAPNGDelayTime`` property, this value is not clamped at the low end of the range.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAPNGUnclampedDelayTime IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
+/**
+ * An array of dictionaries that contain timing information for the image sequence.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfarray>. Each <doc://com.apple.documentation/documentation/corefoundation/cfdictionary> in the array contains timing information about an image in the sequence.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAPNGFrameInfoArray IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The width of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAPNGCanvasPixelWidth IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The height of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAPNGCanvasPixelHeight IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
/* Possible keys for kCGImagePropertyWebPDictionary */
+/**
+ * The number of times to play the sequence.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPLoopCount IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
+/**
+ * The number of seconds to wait before displaying the next image in the sequence.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value. The value of this key is never less than 100 millseconds, and the system adjusts values less than that amount to 100 milliseconds, as needed. See ``kCGImagePropertyGIFUnclampedDelayTime``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPDelayTime IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
+/**
+ * The unadjusted number of seconds to wait before displaying the next image in the sequence.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> with a floating-point value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPUnclampedDelayTime IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
+/**
+ * An array of dictionaries that contain timing information for the image sequence.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfarray>. Each <doc://com.apple.documentation/documentation/corefoundation/cfdictionary> in the array contains timing information about an image in the sequence.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPFrameInfoArray IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
+/**
+ * The width of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPCanvasPixelWidth IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
+/**
+ * The height of the main image, in pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWebPCanvasPixelHeight IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
/* Possible keys for kCGImagePropertyGPSDictionary */
+/**
+ * The GPS version information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSVersion IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * An indication of whether the latitude is north or south.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSLatitudeRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The latitude.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSLatitude IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * An indication of whether the longitude is east or west.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSLongitudeRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The longitude.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSLongitude IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The altitude point of reference.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSAltitudeRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The altitude.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSAltitude IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The time in UTC (Coordinated Universal Time).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSTimeStamp IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The satellites used for GPS measurements.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSSatellites IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The status of the GPS receiver.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSStatus IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The measurement mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSMeasureMode IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The degree of precision (DOP) of the data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDOP IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The unit for expressing the GPS receiver's speed of movement.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSSpeedRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The GPS receiver's speed of movement.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSSpeed IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The reference for the direction of GPS receiver's movement.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSTrackRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The direction of GPS receiver's movement.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSTrack IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The reference for the direction of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSImgDirectionRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The direction of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSImgDirection IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The geodetic survey data used by the GPS receiver.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSMapDatum IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * An indication of whether the latitude of the destination point is northern or southern.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestLatitudeRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The latitude of the destination point.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestLatitude IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * An indication of whether the longitude of the destination point is east or west.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestLongitudeRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The longitude of the destination point.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestLongitude IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The reference for giving the bearing to the destination point.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestBearingRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The bearing to the destination point.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestBearing IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The units for expressing the distance to the destination point.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestDistanceRef IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The distance to the destination point.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDestDistance IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name of the method used to find a location.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSProcessingMethod IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name of the GPS area.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSAreaInformation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The date and time information relative to Coordinated Universal Time (UTC).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDateStamp IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * An indication of whether differential correction is applied to the GPS receiver.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSDifferental IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The horizontal error in the GPS position.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGPSHPositioningError IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
/* Possible keys for kCGImagePropertyIPTCDictionary */
+/**
+ * The object type.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCObjectTypeReference IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The object attribute.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCObjectAttributeReference IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The object name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCObjectName IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The edit status.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCEditStatus IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * An editorial update.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCEditorialUpdate IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The urgency level.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCUrgency IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The subject.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCSubjectReference IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The category.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCategory IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A supplemental category.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCSupplementalCategory IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A fixture identifier.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCFixtureIdentifier IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Keywords relevant to the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCKeywords IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The content location code.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContentLocationCode IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The content location name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContentLocationName IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The earliest day on which you can use the image, in the form CCYYMMDD.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCReleaseDate IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The earliest time at which you can use the image, in the form HHMMSS.
+ *
+ * This time is valid on the release date, which is available in the ``kCGImagePropertyIPTCReleaseDate`` property.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCReleaseTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The latest date you can use the image, in the form CCYYMMDD.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCExpirationDate IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The latest time on the expiration date you can use the image, in the form HHMMSS.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCExpirationTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Special instructions about the use of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCSpecialInstructions IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The advised action.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCActionAdvised IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The reference service.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCReferenceService IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The reference date.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCReferenceDate IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The reference number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCReferenceNumber IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The creation date.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCDateCreated IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The creation time.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCTimeCreated IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The digital creation date.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCDigitalCreationDate IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The digital creation time.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCDigitalCreationTime IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The originating application.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCOriginatingProgram IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The application version.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCProgramVersion IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The editorial cycle (morning, evening, or both) of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCObjectCycle IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name of the person who created the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCByline IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The title of the person who created the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCBylineTitle IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The city where the image was created.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCity IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The location within the city where the image was created.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCSubLocation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The province or state.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCProvinceState IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The primary country code, a three-letter code defined by ISO 3166-1.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCountryPrimaryLocationCode IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The primary country name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCountryPrimaryLocationName IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The call letter or number combination associated with the originating point of an image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCOriginalTransmissionReference IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * A summary of the contents of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCHeadline IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name of the service that provided the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCredit IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The original owner of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCSource IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The copyright notice.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCopyrightNotice IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The contact information for getting details about the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContact IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The description of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCaptionAbstract IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The name of the person who wrote or edited the description of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCWriterEditor IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The image type.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCImageType IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The image orientation (portrait, landscape, or square).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCImageOrientation IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The language identifier, a two-letter code defined by ISO 639:1988.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCLanguageIdentifier IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The star rating.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCStarRating IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The creator's contact info.
+ *
+ * For a list of keys to include in the contact dictionary, see <doc:iptc-creator-contact-info-dictionary-keys>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCCreatorContactInfo IMAGEIO_AVAILABLE_STARTING(10.6, 4.0); // IPTC Core
+/**
+ * The usage rights for the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCRightsUsageTerms IMAGEIO_AVAILABLE_STARTING(10.6, 4.0); // IPTC Core
+/**
+ * The scene codes for the image; a scene code is a six-digit string.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCScene IMAGEIO_AVAILABLE_STARTING(10.6, 4.0); // IPTC Core
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCExtAboutCvTerm IMAGEIO_AVAILABLE_STARTING(10.13.4, 11.3);
@@ -583,194 +1482,802 @@
/* Possible keys for kCGImagePropertyIPTCCreatorContactInfo dictionary (part of IPTC Core - above) */
+/**
+ * The city portion of the contact information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoCity IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * The country or region portion of the contact information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoCountry IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * The address portion of the contact information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoAddress IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * The postal code portion of the contact.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoPostalCode IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * The state or province of the contact.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoStateProvince IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * Email addresses for the contact.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoEmails IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * Phone numbers for the contact.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoPhones IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
+/**
+ * Web addresses for the contact.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyIPTCContactInfoWebURLs IMAGEIO_AVAILABLE_STARTING(10.6, 4.0);
/* Possible keys for kCGImageProperty8BIMDictionary */
+/**
+ * The layer names for an Adobe Photoshop file.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageProperty8BIMLayerNames IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * The Adobe Photoshop file version.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageProperty8BIMVersion IMAGEIO_AVAILABLE_STARTING(10.10, 8.0);
/* Possible keys for kCGImagePropertyDNGDictionary */
+/**
+ * An encoding of the four-tier version number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGVersion IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The oldest version for which a file is compatible.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBackwardVersion IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * A unique, nonlocalized name for the camera model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGUniqueCameraModel IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The localized camera model name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGLocalizedCameraModel IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The camera serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCameraSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * Information about the lens used for the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGLensInfo IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The zero light encoding level, specified as a repeating pattern.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBlackLevel IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The saturated encoding level for the raw sample values.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGWhiteLevel IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The illuminant for the first set of color calibration tags.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCalibrationIlluminant1 IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The illuminant for an optional second set of color calibration tags.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCalibrationIlluminant2 IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * A transformation matrix that converts XYZ values to reference camera native color spaces, under the first calibration illuminant.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGColorMatrix1 IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * A transformation matrix that converts XYZ values to reference camera native color spaces, under the second calibration illuminant.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGColorMatrix2 IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * A matrix that transforms reference camera native space values to camera-native space values under the first calibration illuminant.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCameraCalibration1 IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * A matrix that transforms reference camera native space values to camera-native space values under the second calibration illuminant.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCameraCalibration2 IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The selected white balance at the time of capture, encoded as the coordinates of a neutral color in linear reference space values.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAsShotNeutral IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The selected white balance at the time of capture, encoded as x-y chromaticity coordinates.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAsShotWhiteXY IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The amount by which to adjust the zero point of the exposure, specified in EV units.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBaselineExposure IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The relative noise level of the camera model at an ISO of 100.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBaselineNoise IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The amount of sharpening required for this camera model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBaselineSharpness IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * Private data that manufacturers may store with an image and use in their own converters.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPrivateData IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * A string to match against the profile calibration signature for the selected camera profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCameraCalibrationSignature IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * A string that describes the calibration for the current profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileCalibrationSignature IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The amount of noise in the raw image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGNoiseProfile IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * An opcode to apply a warp to an image to correct for geometric distortion and lateral chromatic aberration for rectilinear lenses.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGWarpRectilinear IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * An opcode to unwrap an image captued with a fisheye lens and map it to a perspective projection.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGWarpFisheye IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * An opcode to apply a gain function to an image to correct vignetting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGFixVignetteRadial IMAGEIO_AVAILABLE_STARTING(10.12, 10.0);
+/**
+ * The rectangle that defines the non-masked pixels of the sensor.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGActiveArea IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The analog or digital gain that applies to the stored raw values.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAnalogBalance IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A hint to the DNG reader about how strong the camera's antialias filter is.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAntiAliasStrength IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A profile that specifies default color rendering from camera color-space coordinates into the ICC profile space.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAsShotICCProfile IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A matrix to apply to the camera color-space coordinates before processing values through the ICC profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAsShotPreProfileMatrix IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A string containing the name of the "as shot" camera profile, if any.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGAsShotProfileName IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The amount of EV units to add to the baseline exposure during image rendering.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBaselineExposureOffset IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A value that specifies how closely green pixels in the blue/green rows track the green pixels in red/green rows.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBayerGreenSplit IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The scale factor to apply to the default scale to achieve the best quality image size.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBestQualityScale IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The difference between the zero-light encoding level for each column and the baseline zero-light encoding level.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBlackLevelDeltaH IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The difference between the zero-light encodoing level for each row and the baseline zero-light encoding level.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBlackLevelDeltaV IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The repeat pattern size for the black level tag.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGBlackLevelRepeatDim IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The spatial layout of the CFA.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCFALayout IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A mapping between the values in the CFA pattern tag and the plane numbers in linear raw space.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCFAPlaneColor IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A hint to the DNG reader about how much chroma blur to apply to the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGChromaBlurRadius IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The colorimetric reference for the CIE XYZ values.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGColorimetricReference IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A profile that specifies default color rendering from camera color-space coordinates into the ICC profile space.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCurrentICCProfile IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A matrix to apply to the current camera color-space coordinates before processing values through the ICC profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGCurrentPreProfileMatrix IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A hint to the raw converter about how to handle the black point during rendering.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGDefaultBlackRender IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The origin of the final image area, relative to the top-left corner of the active area rectangle.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGDefaultCropOrigin IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The size of the final image area, in raw image coordinates.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGDefaultCropSize IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The default scale factors for each direction to convert the image to square pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGDefaultScale IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A default user-crop rectangle in relative coordinates.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGDefaultUserCrop IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A list of file offsets to extra camera profiles.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGExtraCameraProfiles IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A matrix that maps white balanced camera colors to XYZ D50 colors.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGForwardMatrix1 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A matrix that maps white balanced camera colors to XYZ D50 colors.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGForwardMatrix2 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A lookup table that maps stored values into linear values.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGLinearizationTable IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The fraction of the encoding range, above which the response may become significantly non-linear.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGLinearResponseLimit IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A Boolean value that tells the DNG reader whether the EXIF MakerNote tag is safe to preserve.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGMakerNoteSafety IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A list of non-overlapping rectangles that contain fully masked pixels in the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGMaskedAreas IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * An MD5 digest of the raw image data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGNewRawImageDigest IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The amount of noise reduction applied to the raw data on a scale of 0.0 to 1.0.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGNoiseReductionApplied IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The list of opcodes to apply to the raw image, as read directly from the file.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOpcodeList1 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * THe list of opcodes to apply to the raw image, after mapping it to linear reference values.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOpcodeList2 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The list of opcodes to apply to the raw image, after demosaicing it.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOpcodeList3 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The best-quality final size of the larger original file that was the source of this proxy.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOriginalBestQualityFinalSize IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The default crop size of the larger original file that was the source of this proxy.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOriginalDefaultCropSize IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * THe default final size of the larger original file that was the source of this proxy.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOriginalDefaultFinalSize IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The compressed contents of the original raw file.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOriginalRawFileData IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * An MD5 digest of the data stored for the original raw file data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOriginalRawFileDigest IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The file name of the original raw file.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGOriginalRawFileName IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The name of the app that created the preview stored in the IFD.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPreviewApplicationName IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The version number of the app that created the preview stored in the IFD.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPreviewApplicationVersion IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The color space associated with the rendered preview.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPreviewColorSpace IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The date and time for the render of the preview.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPreviewDateTime IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A unique ID of the conversion settings used to render the preview.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPreviewSettingsDigest IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The name of the conversion settings for the preview.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGPreviewSettingsName IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The copyright information for the camera profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileCopyright IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The usage rules for the camera profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileEmbedPolicy IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The data for the first hue/saturation/value mapping table.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileHueSatMapData1 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The data for the second hue/saturation/value mapping table.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileHueSatMapData2 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The number of input samples in each dimension of the hue/saturation/value mapping tables.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileHueSatMapDims IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The encoding option to use when indexing into a 3D look table during raw conversion.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileHueSatMapEncoding IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The default "look" table to apply when processing the image as a starting point for user adjustment.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileLookTableData IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The number of input samples in each dimentsion of a default "look" table.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileLookTableDims IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The encoding option to use when indexing into a 3D look table during raw conversion.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileLookTableEncoding IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A string containing the name of the camera profile.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileName IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The default tone curve to apply when processing the image as a starting point for user adjustments.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGProfileToneCurve IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A 16-byte unique identifier for the raw image data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGRawDataUniqueID IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A modified MD5 digest of the raw image data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGRawImageDigest IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The gain between the main raw IFD and the preview IFD that contains this tag.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGRawToPreviewGain IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A reduction matrix that converts color camera-native space values to XYZ values, under the first calibration illuminant.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGReductionMatrix1 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A reduction matrix that converts color camera-native space values to XYZ values, under the second calibration illuminant.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGReductionMatrix2 IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The number of interleaved fields for the rows of the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGRowInterleaveFactor IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * A tag that Adobe Camera Raw uses to control the sensitivity of its Shadows slider.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGShadowScale IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The size of rectangular blocks that tiles use to group pixels.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyDNGSubTileBlockSize IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
/* Possible keys for kCGImagePropertyCIFFDictionary */
+/**
+ * The camera description.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFDescription IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The firmware version of the camera.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFFirmware IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The name of the camera's owner.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFOwnerName IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFImageName IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image file name.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFImageFileName IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The method of shutter release—single-shot or continuous.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFReleaseMethod IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The priority for shutter release timing—shutter or focus.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFReleaseTiming IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The number of images taken since the camera shipped.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFRecordID IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The time in milliseconds until shutter release when using the self-timer.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFSelfTimingTime IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The camera serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFCameraSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFImageSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The continuous drive mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFContinuousDrive IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The focus mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFFocusMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The metering mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFMeteringMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The shooting mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFShootingMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFLensModel IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The maximum lens length in millimeters.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFLensMaxMM IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The minimum lens length in millimeters.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFLensMinMM IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The white balance index.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFWhiteBalanceIndex IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The flash exposure compensation.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFFlashExposureComp IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The measured exposure value.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyCIFFMeasuredEV IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
/* Possible keys for kCGImagePropertyMakerNikonDictionary */
+/**
+ * The ISO setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonISOSetting IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The color mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonColorMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The quality setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonQuality IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The white balance mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonWhiteBalanceMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The sharpening mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonSharpenMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The focus mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonFocusMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The flash setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonFlashSetting IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The ISO selection.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonISOSelection IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The flash exposure compensation.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonFlashExposureComp IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image adjustment setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonImageAdjustment IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens adapter.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonLensAdapter IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens type.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonLensType IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * Lens information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonLensInfo IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The focus distance.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonFocusDistance IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The digital zoom setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonDigitalZoom IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The shooting mode.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonShootingMode IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The camera serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonCameraSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The number of times the shutter has been actuated.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerNikonShutterCount IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
/* Possible keys for kCGImagePropertyMakerCanonDictionary */
+/**
+ * The name of the camera's owner.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonOwnerName IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The camera serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonCameraSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image serial number.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonImageSerialNumber IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The flash exposure compensation setting.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonFlashExposureComp IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The presence of a continuous drive.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonContinuousDrive IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The lens model.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonLensModel IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The firmware version.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonFirmware IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
+/**
+ * The image aspect ratio.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyMakerCanonAspectRatioInfo IMAGEIO_AVAILABLE_STARTING(10.5, 4.0);
/* For EXR files:
* The value (CFNumberRef) specifies the EXR compression method. See AppleEXR.h for possible values.
* Default value if not specified is 'axr_compression_piz'
- */
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyOpenEXRCompression IMAGEIO_AVAILABLE_STARTING(13.0, 16.1);
/* Possible keys for kCGImagePropertyOpenEXRDictionary */
+/**
+ * The aspect ratio of the image.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyOpenEXRAspectRatio IMAGEIO_AVAILABLE_STARTING(10.9, 11.3);
/* Possible int values for kCGImagePropertyTIFFOrientation */
+/**
+ * A value describing the intended display orientation for an image.
+ *
+ * Values of this type define the position of the pixel coordinate origin point (`0,0`) and the directions of the coordinate axes relative to the intended display orientation of the image. Orientation values are commonly found in image metadata, and specifying image orientation correctly can be important both for displaying the image and for certain image processing tasks such as face recognition.
+ *
+ * For example, the pixel data for an image captured by an iOS device camera is encoded in the camera sensor's native landscape orientation. When the user captures a photo while holding the device in portrait orientation, iOS writes an orientation value of ``right`` in the resulting image file. Software displaying the image can then, after reading that value from the file's metadata, apply a 90° clockwise rotation to the image data so that the image appears in the photographer's intended orientation.
+ *
+ * 
+ *
+ * ### Compatibility with UIImageOrientation
+ *
+ * The ``CGImagePropertyOrientation`` type covers the same set of orientation names available in from the <doc://com.apple.documentation/documentation/uikit/uiimage/orientation> type, but the underlying numeric values of each type do not match. (For example, the "left mirrored" orientation has an underlying value of 5 in ``CGImagePropertyOrientation``, but an underlying value of 7 in <doc://com.apple.documentation/documentation/uikit/uiimage/orientation>.) If you have an orientation value in one type and need a semantically equivalent value in the other, use a function such as those below to produce the same-named value in the other type:
+ *
+ * @TabNavigator {
+ * @Tab("Swift") {
+ * ```swift
+ * extension CGImagePropertyOrientation {
+ * init(_ uiOrientation: UIImage.Orientation) {
+ * switch uiOrientation {
+ * case .up: self = .up
+ * case .upMirrored: self = .upMirrored
+ * case .down: self = .down
+ * case .downMirrored: self = .downMirrored
+ * case .left: self = .left
+ * case .leftMirrored: self = .leftMirrored
+ * case .right: self = .right
+ * case .rightMirrored: self = .rightMirrored
+ * @unknown default:
+ * fatalError()
+ * }
+ * }
+ * }
+ * extension UIImage.Orientation {
+ * init(_ cgOrientation: CGImagePropertyOrientation) {
+ * switch cgOrientation {
+ * case .up: self = .up
+ * case .upMirrored: self = .upMirrored
+ * case .down: self = .down
+ * case .downMirrored: self = .downMirrored
+ * case .left: self = .left
+ * case .leftMirrored: self = .leftMirrored
+ * case .right: self = .right
+ * case .rightMirrored: self = .rightMirrored
+ * @unknown default:
+ * fatalError()
+ * }
+ * }
+ * }
+ * ```
+ * }
+ * @Tab("Objective-C") {
+ * ```objc
+ * CGImagePropertyOrientation CGImagePropertyOrientationForUIImageOrientation(UIImageOrientation uiOrientation) {
+ * switch (uiOrientation) {
+ * case UIImageOrientationUp: return kCGImagePropertyOrientationUp;
+ * case UIImageOrientationDown: return kCGImagePropertyOrientationDown;
+ * case UIImageOrientationLeft: return kCGImagePropertyOrientationLeft;
+ * case UIImageOrientationRight: return kCGImagePropertyOrientationRight;
+ * case UIImageOrientationUpMirrored: return kCGImagePropertyOrientationUpMirrored;
+ * case UIImageOrientationDownMirrored: return kCGImagePropertyOrientationDownMirrored;
+ * case UIImageOrientationLeftMirrored: return kCGImagePropertyOrientationLeftMirrored;
+ * case UIImageOrientationRightMirrored: return kCGImagePropertyOrientationRightMirrored;
+ * }
+ * }
+ * UIImageOrientation UIImageOrientationForCGImagePropertyOrientation(CGImagePropertyOrientation cgOrientation) {
+ * switch (cgOrientation) {
+ * case kCGImagePropertyOrientationUp: return UIImageOrientationUp;
+ * case kCGImagePropertyOrientationDown: return UIImageOrientationDown;
+ * case kCGImagePropertyOrientationLeft: return UIImageOrientationLeft;
+ * case kCGImagePropertyOrientationRight: return UIImageOrientationRight;
+ * case kCGImagePropertyOrientationUpMirrored: return UIImageOrientationUpMirrored;
+ * case kCGImagePropertyOrientationDownMirrored: return UIImageOrientationDownMirrored;
+ * case kCGImagePropertyOrientationLeftMirrored: return UIImageOrientationLeftMirrored;
+ * case kCGImagePropertyOrientationRightMirrored: return UIImageOrientationRightMirrored;
+ * }
+ * }
+ * ```
+ * }
+ * }
+ *
+ * ### Working with Raw TIFF/Exif Numeric Values
+ *
+ * Some APIs describe image orientation with basic integer values, intended for interpretation according to the TIFF and Exif specifications. The ``CGImagePropertyOrientation`` type simply defines symbolic names for those values, so you can convert to and from the raw numeric type with C type-cast syntax or the inherited <doc://com.apple.documentation/documentation/swift/rawrepresentable/init(rawvalue:)> initializer and <doc://com.apple.documentation/documentation/swift/rawrepresentable/rawvalue-swift.property> property in Swift.
+ */
typedef CF_CLOSED_ENUM(uint32_t, CGImagePropertyOrientation) {
+ /**
+ * The encoded image data matches the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the leftmost column and top row, respectively. Pixel (x,y) positions increase left-to-right, top-to-bottom.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears correctly "right side up". That is, this orientation is an identity value.
+ *
+ * 
+ */
kCGImagePropertyOrientationUp = 1, // 0th row at top, 0th column on left - default orientation
+ /**
+ * The encoded image data is horizontally flipped from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the rightmost column and top row, respectively. Pixel (x,y) positions increase right-to-left, top-to-bottom.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears horizontally mirrored.
+ *
+ * 
+ */
kCGImagePropertyOrientationUpMirrored, // 0th row at top, 0th column on right - horizontal flip
+ /**
+ * The encoded image data is rotated 180° from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the rightmost column and bottom row, respectively. Pixel (x,y) positions increase right-to-left, bottom-to-top.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears rotated 180°.
+ *
+ * 
+ */
kCGImagePropertyOrientationDown, // 0th row at bottom, 0th column on right - 180 deg rotation
+ /**
+ * The encoded image data is vertically flipped from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the leftmost column and bottom row, respectively. Pixel (x,y) positions increase left-to-right, bottom-to-top.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears vertically flipped. (Alternatively, the image is rotated 180° and then flipped horizontally.)
+ *
+ * 
+ */
kCGImagePropertyOrientationDownMirrored, // 0th row at bottom, 0th column on left - vertical flip
+ /**
+ * The encoded image data is horizontally flipped and rotated 90° counter-clockwise from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the top row and leftmost column, respectively. Pixel (x,y) positions increase top-to-bottom, left-to-right.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears to be horizontally mirrored, then rotated 90° counter-clockwise. (That is, to present the image in its intended orientation, you can rotate it 90° clockwise, then flip horizontally.)
+ *
+ * 
+ */
kCGImagePropertyOrientationLeftMirrored, // 0th row on left, 0th column at top
+ /**
+ * The encoded image data is rotated 90° counter-clockwise from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the top row and rightmost column, respectively. Pixel (x,y) positions increase top-to-bottom, right-to-left.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears to be rotated 90° counter-clockwise. (That is, to present the image in its intended orientation, you must rotate it 90° clockwise.)
+ *
+ * 
+ */
kCGImagePropertyOrientationRight, // 0th row on right, 0th column at top - 90 deg CW
+ /**
+ * The encoded image data is horizontally flipped and rotated 90° clockwise from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the bottom row and rightmost column, respectively. Pixel (x,y) positions increase bottom-to-top, right-to-left.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears to be horizontally mirrored, then rotated 90° clockwise. (That is, to present the image in its intended orientation, you can rotate 90° counter-clockwise, then flip horizontally.)
+ *
+ * 
+ */
kCGImagePropertyOrientationRightMirrored, // 0th row on right, 0th column on bottom
+ /**
+ * The encoded image data is rotated 90° clockwise from the image's intended display orientation.
+ *
+ * The (x,y) pixel coordinates of the origin point (0,0) represent the bottom row and leftmost column, respectively. Pixel (x,y) positions increase bottom-to-top, left-to-right.
+ *
+ * If an image is encoded with this orientation, then displayed by software unaware of orientation metadata, the image appears to be rotated 90° clockwise. (That is, to present the image in its intended orientation, you must rotate 90° counter-clockwise.)
+ *
+ * 
+ */
kCGImagePropertyOrientationLeft // 0th row on left, 0th column at bottom - 90 deg CCW
};
@@ -779,6 +2286,9 @@
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyTGACompression IMAGEIO_AVAILABLE_STARTING(11.0, 14.0);
/* Possible int values for kCGImagePropertyTGACompression */
+/**
+ * Possible values for ``kCGImagePropertyTGACompression``.
+ */
typedef CF_CLOSED_ENUM(uint32_t, CGImagePropertyTGACompression) {
kCGImageTGACompressionNone = 0,
kCGImageTGACompressionRLE,
@@ -791,14 +2301,26 @@
* The filters are defined below, IMAGEIO_PNG_NO_FILTERS, IMAGEIO_PNG_FILTER_NONE, etc
* This value has no effect when compressing to any format other than PNG
*/
+/**
+ * The PNG filter to apply prior to compression.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>. The number contains a bitwise-OR of one or more filter constants, such as ``IMAGEIO_PNG_FILTER_AVG`` or ``IMAGEIO_PNG_FILTER_SUB``. The value has no effect on formats other than PNG.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPNGCompressionFilter IMAGEIO_AVAILABLE_STARTING(10.11, 9.0);
+/** No PNG filters. */
#define IMAGEIO_PNG_NO_FILTERS 0x00
+/** A filter in which each byte is unchanged. */
#define IMAGEIO_PNG_FILTER_NONE 0x08
+/** A filter in which each byte is replaced with the difference between it and the corresponding byte to its left. */
#define IMAGEIO_PNG_FILTER_SUB 0x10
+/** A filter in which each byte is replaced with the difference between it and the byte above it. */
#define IMAGEIO_PNG_FILTER_UP 0x20
+/** A filter in which each byte is replaced with the difference between it and the average of the bytes above it and to its left. */
#define IMAGEIO_PNG_FILTER_AVG 0x40
+/** A filter in which each byte is replaced with the difference between it and the Paeth predictor of the bytes to its left, above, and upper left. */
#define IMAGEIO_PNG_FILTER_PAETH 0x80
+/** All PNG filters. */
#define IMAGEIO_PNG_ALL_FILTERS (IMAGEIO_PNG_FILTER_NONE | IMAGEIO_PNG_FILTER_SUB | IMAGEIO_PNG_FILTER_UP | IMAGEIO_PNG_FILTER_AVG | IMAGEIO_PNG_FILTER_PAETH)
/*
@@ -812,15 +2334,42 @@
/* For use with CGImageSourceCopyAuxiliaryDataInfoAtIndex and CGImageDestinationAddAuxiliaryDataInfo:
* These strings specify the 'auxiliaryImageDataType':
*/
+/**
+ * The type for depth map information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeDepth IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The type for image disparity information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeDisparity IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The type for portrait effects matte information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypePortraitEffectsMatte IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
+/**
+ * The type for skin matte informaton.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeSemanticSegmentationSkinMatte IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The type for hair matte information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeSemanticSegmentationHairMatte IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The type for teeth matte information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeSemanticSegmentationTeethMatte IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
+/**
+ * The type for glasses matte informaton.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeSemanticSegmentationGlassesMatte IMAGEIO_AVAILABLE_STARTING(11.0, 14.1);
+/**
+ * The type for sky matte information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeSemanticSegmentationSkyMatte IMAGEIO_AVAILABLE_STARTING(11.0, 14.1);
+/**
+ * The type for High Dynamic Range (HDR) gain map information.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeHDRGainMap IMAGEIO_AVAILABLE_STARTING(11.0, 14.1);
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataTypeISOGainMap IMAGEIO_AVAILABLE_STARTING(15.0, 18);
@@ -832,20 +2381,80 @@
* kCGImageAuxiliaryDataInfoMetadata - metadata (CGImageMetadataRef)
* kCGImageAuxiliaryDataInfoColorSpace - the color space associated with the aux image (CGColorSpaceRef)
*/
+/**
+ * The auxiliary data for the image.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfdata>. Use the ``kCGImagePropertyAuxiliaryDataType`` property to determine the format of this data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataInfoData IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * A dictionary of keys that describe the auxiliary data.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfdictionary>. The keys in this dictionary may include ``kCGImagePropertyWidth``, ``kCGImagePropertyHeight``, and ``kCGImagePropertyBytesPerRow``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataInfoDataDescription IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The metadata for any auxiliary data.
+ *
+ * The value of this property is a ``CGImageMetadata`` type. Use it to obtain any metadata associated with the auxiliary data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataInfoMetadata IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
IMAGEIO_EXTERN const CFStringRef kCGImageAuxiliaryDataInfoColorSpace IMAGEIO_AVAILABLE_STARTING(15.0, 18.0);
+/**
+ * The number of images in the file.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyImageCount IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The width of the image, in the image's coordinate space.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyWidth IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The height of the image, in the image's coordinate space.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyHeight IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The total number of bytes in each row of the image.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyBytesPerRow IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The name of the image's color space.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfstring>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyNamedColorSpace IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The format of the image's individual pixels.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfnumber>. For information about how to interpret this value, see the `PixelFormat` tag in the EXIF specification.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyPixelFormat IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * An array of dictionaries, each of which contains metadata for one of the images in the file.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfarray>. Each element in the array is a <doc://com.apple.documentation/documentation/corefoundation/cfdictionary> that contains metadata for one of the images. For example, the dictionary might contain the width and height of the image, the image's color space name, thumbnail image information, and any auxiliary data.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyImages IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyThumbnailImages IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * An array of dictionaries that contain auxiliary data for the images.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfarray>. Each <doc://com.apple.documentation/documentation/corefoundation/cfdictionary> in the array contains auxiliary data for one of the images in the file. Use the ``kCGImagePropertyAuxiliaryDataType`` key to determine the type of data associated with the image.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAuxiliaryData IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
+/**
+ * The type of the auxiliary data.
+ *
+ * The value of this property is a <doc://com.apple.documentation/documentation/corefoundation/cfstring>. The value of this key might be ``kCGImageAuxiliaryDataTypeDisparity``, ``kCGImageAuxiliaryDataTypeDepth``, or another auxiliary data type.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyAuxiliaryDataType IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyImageIndex IMAGEIO_AVAILABLE_STARTING(12.0, 15.0);
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyGroups IMAGEIO_AVAILABLE_STARTING(12.0, 15.0);
diff -ruN /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageSource.h /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageSource.h
--- /Applications/Xcode_26.5.0.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageSource.h 2026-04-24 21:58:54
+++ /Applications/Xcode_27.0.0-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageSource.h 2026-05-21 06:59:45
@@ -9,6 +9,15 @@
#include <ImageIO/ImageIOBase.h>
+/**
+ * An opaque type that you use to read image data from a URL, data object, or data consumer.
+ *
+ * Use a ``CGImageSource`` type to read data efficiently for most image file formats. The image source object manages the data buffers needed to load the image data and performs any operations on that data to turn it into a usable image. For example, it decompresses data stored in a compressed format. You can also use an image source to fetch or create thumbnail images and access metadata stored with the image.
+ *
+ * Create an image source object from a <doc://com.apple.documentation/documentation/corefoundation/cfurl>, <doc://com.apple.documentation/documentation/corefoundation/cfdata>, or <doc://com.apple.documentation/documentation/coregraphics/cgdataprovider> data type. The image source object reads data from the specified type and extracts the image information for you.
+ *
+ * For more information, see [Image I/O Programming Guide](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/ImageIOGuide/imageio_intro/ikpg_intro.html#//apple_ref/doc/uid/TP40005462).
+ */
typedef struct IIO_BRIDGED_TYPE(id) CGImageSource * CGImageSourceRef;
#include <CoreGraphics/CoreGraphics.h>
@@ -18,12 +27,35 @@
CF_ASSUME_NONNULL_BEGIN
+/**
+ * The set of status values for images and image sources.
+ *
+ * The ``CGImageSourceGetStatus(_:)`` and ``CGImageSourceGetStatusAtIndex(_:_:)`` functions return these values.
+ */
typedef CF_ENUM(int32_t, CGImageSourceStatus) {
+ /**
+ * The end of the file occurred unexpectedly.
+ */
kCGImageStatusUnexpectedEOF = -5,
+ /**
+ * The data is not valid.
+ */
kCGImageStatusInvalidData = -4,
+ /**
+ * The image is an unknown type.
+ */
kCGImageStatusUnknownType = -3,
+ /**
+ * The image source is reading the header.
+ */
kCGImageStatusReadingHeader = -2,
+ /**
+ * The operation is not complete
+ */
kCGImageStatusIncomplete = -1,
+ /**
+ * The operation is complete.
+ */
kCGImageStatusComplete = 0
};
@@ -34,8 +66,50 @@
* CFStringRef. For more information about type identifiers, see "UTType.h"
* in the Application Services framework. */
+/**
+ * The uniform type identifier that represents your best guess for the image's type.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfstring> object. Add this key to the options dictionary when you create a ``CGImageSource`` object.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceTypeIdentifierHint IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
+/**
+ * Option key for restricting which image formats can be decoded.
+ *
+ * The value is a <doc://com.apple.documentation/documentation/corefoundation/cfarray> containing <doc://com.apple.documentation/documentation/corefoundation/cfstring> Uniform Type Identifiers (UTIs)
+ * of allowed image formats. When specified, ImageIO will only decode images
+ * whose format matches one of the entries in the allow list. If no matching reader
+ * is found, decoding fails.
+ *
+ * Unknown format identifiers are ignored.
+ * If not specified, all supported ImageIO formats are allowed (default behavior).
+ * If process-wide format restrictions were set via ``CGImageSourceSetAllowableTypes``,
+ * only formats allowed by both mechanisms are permitted.
+ *
+ * See also <doc://com.apple.documentation/documentation/uniformtypeidentifiers/system-declared-uniform-type-identifiers>.
+ *
+ * ## Example
+ * @TabNavigator {
+ * @Tab("Swift") {
+ * ```swift
+ * let allowedTypes = ["public.jpeg" as CFString, "public.png" as CFString]
+ * let options = [
+ * kCGImageSourceAllowableTypes: allowedTypes
+ * ] as CFDictionary
+ * ```
+ * }
+ * @Tab("Objective-C") {
+ * ```objc
+ * NSArray *allowedTypes = @[@"public.jpeg", @"public.png"];
+ * NSDictionary *options = @{
+ * (id)kCGImageSourceAllowableTypes: allowedTypes
+ * };
+ * ```
+ * }
+ * }
+ */
+IMAGEIO_EXTERN const CFStringRef kCGImageSourceAllowableTypes IMAGEIO_AVAILABLE_STARTING(27.0, 27.0, 27.0, 27.0);
+
/** Keys for the options dictionary of "CGImageSourceCopyPropertiesAtIndex"
** and "CGImageSourceCreateImageAtIndex". **/
@@ -45,12 +119,26 @@
* For 64-bit architectures, the default is kCFBooleanTrue, for 32-bit the default is kCFBooleanFalse.
*/
+/**
+ * A Boolean value that indicates whether to cache the decoded image.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue> for 64-bit architectures, and <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse> for 32-bit architectures.
+ *
+ * Include this key in the options dictionary you pass to the functions ``CGImageSourceCopyPropertiesAtIndex(_:_:_:)`` and ``CGImageSourceCreateImageAtIndex(_:_:_:)``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceShouldCache IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Specifies whether image decoding and caching should happen at image creation time.
* The value of this key must be a CFBooleanRef. The default value is kCFBooleanFalse (image decoding will
* happen at rendering time).
*/
+/**
+ * A Boolean value that indicates whether image decoding and caching happens at image creation time.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>, which causes decoding and caching to happen only when you render the image.
+ *
+ * Include this key in the options dictionary you pass to the functions ``CGImageSourceCopyPropertiesAtIndex(_:_:_:)`` and ``CGImageSourceCreateImageAtIndex(_:_:_:)``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceShouldCacheImmediately IMAGEIO_AVAILABLE_STARTING(10.9, 7.0);
/* Specifies whether the image should be returned as a floating
@@ -59,9 +147,15 @@
* processing to render pleasingly. The value of this key must
* be a CFBooleanRef; the default value is kCFBooleanFalse. */
+/**
+ * A Boolean that indicates whether to use floating-point values in returned images.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>, which tells the image source not to use floating-point values.
+ *
+ * If the image format supports floating-point values, this key tells the image source to format <doc://com.apple.documentation/documentation/coregraphics/cgimage> types using those values. The use of extended-range floating-point values may require additional processing to render in a pleasing manner.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceShouldAllowFloat IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
-
/** Keys for the options dictionary of
** "CGImageSourceCreateThumbnailAtIndex". **/
@@ -73,6 +167,15 @@
* image, which probably isn't what you want. The value of this key must be
* a CFBooleanRef; the default value of this key is kCFBooleanFalse. */
+/**
+ * A Boolean value that indicates whether to create a thumbnail image automatically if the data source doesn't contain one.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>.
+ *
+ * If you set the value of this key to <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue>, the image source creates the thumbnail from the full image, subject to the limit specified by ``kCGImageSourceThumbnailMaxPixelSize``. If you don't specify a maximum pixel size, the image soucre creates the thumbnail using the image's full size, which in most cases is not desirable.
+ *
+ * Include this key in the options dictionary you pass to the function ``CGImageSourceCreateThumbnailAtIndex(_:_:_:)``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceCreateThumbnailFromImageIfAbsent IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Specifies whether a thumbnail should be created from the full image even
@@ -83,6 +186,15 @@
* probably isn't what you want. The value of this key must be a
* CFBooleanRef; the default value of this key is kCFBooleanFalse. */
+/**
+ * A Boolean value that indicates whether to always create a thumbnail image.
+ *
+ * The value of this key is a <doc://com.apple.documentation/documentation/corefoundation/cfboolean>. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>.
+ *
+ * If you set the value of this key to <doc://com.apple.documentation/documentation/corefoundation/kcfbooleantrue>, the image source creates the thumbnail from the full image, subject to the limit specified by ``kCGImageSourceThumbnailMaxPixelSize``. If you don't specify a maximum pixel size, the image source creates the thumbnail using the image's full size, which in most cases is not desirable.
+ *
+ * Include this key in the options dictionary you pass to the function ``CGImageSourceCreateThumbnailAtIndex(_:_:_:)``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceCreateThumbnailFromImageAlways IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Specifies the maximum width and height in pixels of a thumbnail. If
@@ -90,6 +202,11 @@
* not limited and thumbnails may be as big as the image itself. If
* present, this value of this key must be a CFNumberRef. */
+/**
+ * The maximum width and height of a thumbnail image, specified in pixels.
+ *
+ * If this key is not specified, the width and height of a thumbnail is not limited and thumbnails may be as big as the image itself. If present, this key must be a CFNumber value. This key can be provided in the options dictionary that you pass to the function ``CGImageSourceCreateThumbnailAtIndex(_:_:_:)``.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceThumbnailMaxPixelSize IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Specifies whether the thumbnail should be rotated and scaled according
@@ -97,6 +214,11 @@
* of this key must be a CFBooleanRef; the default value of this key is
* kCFBooleanFalse. */
+/**
+ * A Boolean value that indicates whether to rotate and scale the thumbnail image to match the image's orientation and aspect ratio.
+ *
+ * The value of this key must be a CFBoolean value. The default value is <doc://com.apple.documentation/documentation/corefoundation/kcfbooleanfalse>.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceCreateThumbnailWithTransform IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Specifies that, if possible, an image should be returned as scaled down (in height and width) by a specified factor.
@@ -107,33 +229,84 @@
* The value of this key must be an integer CFNumberRef (allowed values: 2, 4, and 8).
*/
+/**
+ * The factor by which to scale down any returned images.
+ *
+ * When you specify this key, the image source scales down the image data by the specified numerical factor. The value of this key must be a <doc://com.apple.documentation/documentation/corefoundation/cfnumber> containing the integer value 2, 4, or 8. If the image doesn't support the specified scale factor, the image source provides a larger or full-size normal image.
+ *
+ * Image sources support this option only for JPEG, HEIF, TIFF, and PNG images.
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceSubsampleFactor IMAGEIO_AVAILABLE_STARTING(10.11, 9.0);
/* Return the CFTypeID for CGImageSources. */
+/**
+ * Returns the unique type identifier of an image source opaque type.
+ *
+ * - Returns: Returns the Core Foundation type ID for an image source.
+ *
+ * A type identifier is an integer that identifies the opaque type to which a Core Foundation object belongs. You use type IDs in various contexts, such as when you are operating on heterogeneous collections. Note that a Core Foundation type ID is different from a uniform type identifier.
+ */
IMAGEIO_EXTERN CFTypeID CGImageSourceGetTypeID (void) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return an array of supported type identifiers. */
+/**
+ * Returns an array of uniform type identifiers that are supported for image sources.
+ *
+ * - Returns: Returns an array of the uniform type identifiers that are supported for image sources.
+ *
+ * For a list of system-declared and third-party identifiers, see <doc://com.apple.documentation/documentation/uniformtypeidentifiers>.
+ */
IMAGEIO_EXTERN CFArrayRef _iio_Nonnull CGImageSourceCopyTypeIdentifiers(void) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an image source reading from the data provider `provider'. The
* `options' dictionary may be used to request additional creation options;
* see the list of keys above for more information. */
+/**
+ * Creates an image source that reads data from the specified data provider.
+ *
+ * - Parameters:
+ * - provider: The data provider to read from. For more information on data providers, see <doc://com.apple.documentation/documentation/coregraphics/cgdataprovider> and [Quartz 2D Programming Guide](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001066).
+ * - options: A dictionary that specifies additional creation options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: An image source. You're responsible for releasing this type using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ */
IMAGEIO_EXTERN CGImageSourceRef _iio_Nullable CGImageSourceCreateWithDataProvider(CGDataProviderRef _iio_Nonnull provider, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an image source reading from `data'. The `options' dictionary
* may be used to request additional creation options; see the list of keys
* above for more information. */
+/**
+ * Creates an image source that reads from a Core Foundation data object.
+ *
+ * - Parameters:
+ *
+ * - data: The data object from which to read. For more information on data objects, see <doc://com.apple.documentation/documentation/corefoundation/cfdata> and [Data Objects](https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBinaryData/DataObjects.html#//apple_ref/doc/uid/20000171).
+ *
+ *
+ * - options: A dictionary that specifies additional creation options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: An image source. You're responsible for releasing this type using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ */
IMAGEIO_EXTERN CGImageSourceRef _iio_Nullable CGImageSourceCreateWithData(CFDataRef _iio_Nonnull data, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an image source reading from `url'. The `options' dictionary may
* be used to request additional creation options; see the list of keys
* above for more information. */
+/**
+ * Creates an image source that reads from a location specified by a URL.
+ *
+ * - Parameters:
+ * - url: The URL of the image.
+ * - options: A dictionary that specifies additional creation options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: An image source. You're responsible for releasing this type using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ */
IMAGEIO_EXTERN CGImageSourceRef _iio_Nullable CGImageSourceCreateWithURL(CFURLRef _iio_Nonnull url, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the type identifier of the image source `isrc'. This type is the
@@ -141,17 +314,50 @@
* image(s) in the container. For example, the .icns format supports
* embedded JPEG2000 but the source type will be "com.apple.icns". */
+/**
+ * Returns the uniform type identifier of the source container.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ *
+ * - Returns: The uniform type identifier of the image source container.
+ *
+ * The uniform type identifier of the source container can be different from the type of the images in the container. For example, the `.icns` format supports embedded `JPEG2000`. The type of the source container is `"com.apple.icns"`, but type of the images is `JPEG2000`.
+ *
+ * For a list of system-declared and third-party identifiers, see <doc://com.apple.documentation/documentation/uniformtypeidentifiers>.
+ */
IMAGEIO_EXTERN CFStringRef _iio_Nullable CGImageSourceGetType(CGImageSourceRef _iio_Nonnull isrc) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the number of images (not including thumbnails) in the image
* source `isrc'. */
+/**
+ * Returns the number of images (not including thumbnails) in the image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ *
+ * - Returns: The number of images. If the image source is a multilayered Photoshop (PSD) file, the function returns `1`.
+ *
+ * This function does not extract the layers of a PSD file.
+ */
IMAGEIO_EXTERN size_t CGImageSourceGetCount(CGImageSourceRef _iio_Nonnull isrc) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the properties of the image source `isrc'. These properties
* apply to the container in general but not necessarily to any individual
* image that it contains. */
+/**
+ * Returns the properties of the image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ * - options: A dictionary you can use to request additional options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: A dictionary that contains the properties associated with the image source container. See `CGImageProperties` for a list of properties that can be in the dictionary.
+ *
+ * These properties apply to the container in general but not necessarily to any individual image contained in the image source.
+ */
IMAGEIO_EXTERN CFDictionaryRef _iio_Nullable CGImageSourceCopyProperties(CGImageSourceRef _iio_Nonnull isrc, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the properties of the image at `index' in the image source
@@ -159,6 +365,16 @@
* to request additional options; see the list of keys above for more
* information. */
+/**
+ * Returns the properties of the image at a specified location in an image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ * - index: The zero-based index into the images of the image source. If the index is invalid, this method returns `NULL`.
+ * - options: A dictionary you can use to request additional options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: A dictionary that contains the properties associated with the image. See `CGImageProperties` for a list of properties that allowed in the dictionary.
+ */
IMAGEIO_EXTERN CFDictionaryRef _iio_Nullable CGImageSourceCopyPropertiesAtIndex(CGImageSourceRef _iio_Nonnull isrc, size_t index, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the metadata of the image at `index' in the image source
@@ -171,6 +387,16 @@
* zero-based. The `options' dictionary may be used to request additional
* creation options; see the list of keys above for more information. */
+/**
+ * Creates an image object from the data at the specified index in an image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ * - index: The zero-based index of the image you want. If the index is invalid, this method returns `NULL`.
+ * - options: A dictionary that specifies additional creation options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: The image at the specified index, or `NULL` if an error occurs. You're responsible for releasing the returned object using <doc://com.apple.documentation/documentation/coregraphics/cgimagerelease>.
+ */
IMAGEIO_EXTERN CGImageRef _iio_Nullable CGImageSourceCreateImageAtIndex(CGImageSourceRef _iio_Nonnull isrc, size_t index, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Remove the cached decoded image data for the image at `index' in the image source `isrc'.
@@ -183,6 +409,18 @@
* additional thumbnail creation options; see the list of keys above for
* more information. */
+/**
+ * Creates a thumbnail version of the image at the specified index in an image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ * - index: The zero-based index of the image you want. If the index is invalid, this method returns `NULL`.
+ * - options: A dictionary that specifies additional creation options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: The image at the specified index, or `NULL` if an error occurs. You are responsible for releasing the returned object using <doc://com.apple.documentation/documentation/coregraphics/cgimagerelease>.
+ *
+ * If the image source is a PDF, this function creates a 72 dpi image of the PDF page specified by the index that you pass. You must, however, pass an options dictionary that contains either the ``kCGImageSourceCreateThumbnailFromImageIfAbsent`` or ``kCGImageSourceCreateThumbnailFromImageAlways`` keys, with the value of the key set to `true`.
+ */
IMAGEIO_EXTERN CGImageRef _iio_Nullable CGImageSourceCreateThumbnailAtIndex(CGImageSourceRef _iio_Nonnull isrc, size_t index, CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Create an incremental image source. No data is provided at creation
@@ -191,6 +429,16 @@
* `options' dictionary may be used to request additional creation options;
* see the list of keys above for more information. */
+/**
+ * Creates an empty image source that you can use to accumulate incremental image data.
+ *
+ * - Parameters:
+ * - options: A dictionary that specifies additional creation options. For a list of possible values, see <doc:CGImageSource#Specifying-the-Read-Options>.
+ *
+ * - Returns: An empty image source object. You're responsible for releasing this type using <doc://com.apple.documentation/documentation/corefoundation/cfrelease>.
+ *
+ * This function creates an empty image source container, which you use to accumulate data downloaded in chunks from the network. To add new chunks of data to the image source, call the ``CGImageSourceUpdateDataProvider(_:_:_:)`` or ``CGImageSourceUpdateData(_:_:_:)`` functions.
+ */
IMAGEIO_EXTERN CGImageSourceRef _iio_Nonnull CGImageSourceCreateIncremental(CFDictionaryRef _iio_Nullable options) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Update the incremental image source `isrc' with new data. The new data
@@ -198,6 +446,16 @@
* `final' parameter should be true when the final set of data is provided;
* false otherwise. */
+/**
+ * Updates the data in an incremental image source.
+ *
+ * - Parameters:
+ * - isrc: The image source to modify.
+ * - data: The updated data for the image source. Each time you call this function, specify all of the accumulated image data so far.
+ * - final: A Boolean value that indicates whether the `data` parameter represents the complete data set. Specify `true` if the data is complete or `false` if it isn't.
+ *
+ * This method updates the state of the image source and its contained images. Call this method one or more times to update the contents of an incremental data source. Each time you call the method, you must specify all of the accumulated image data, not just the new data you received.
+ */
IMAGEIO_EXTERN void CGImageSourceUpdateData(CGImageSourceRef _iio_Nonnull isrc, CFDataRef _iio_Nonnull data, bool final) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Update the incremental image source `isrc' with a new data provider.
@@ -205,12 +463,30 @@
* additional new data. The `final' parameter should be true when the final
* set of data is provided; false otherwise. */
+/**
+ * Updates an incremental image source with a new data provider.
+ *
+ * - Parameters:
+ * - isrc: The image source to modify.
+ * - provider: The new data provider. The new data provider must provide all the previous data supplied to the image source and any additional new data.
+ * - final: A Boolean value that indicates whether the `provider` parameter provides the complete data set. Specify `true` if the data is complete or `false` if it isn't.
+ */
IMAGEIO_EXTERN void CGImageSourceUpdateDataProvider(CGImageSourceRef _iio_Nonnull isrc, CGDataProviderRef _iio_Nonnull provider, bool final) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the overall status of the image source `isrc'. The status is
* particularly informative for incremental image sources, but may be used
* by clients providing non-incremental data as well. */
+/**
+ * Return the status of an image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ *
+ * - Returns: Returns the current status of the image source. See ``CGImageSourceStatus`` for a list of possible values.
+ *
+ * Status information is particularly informative for incremental image sources, but it may also be useful on image sources that contain non-incremental data.
+ */
IMAGEIO_EXTERN CGImageSourceStatus CGImageSourceGetStatus(CGImageSourceRef _iio_Nonnull isrc) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the current status of the image at `index' in the image source
@@ -218,11 +494,30 @@
* informative for incremental image sources but may used by clients
* providing non-incremental data as well. */
+/**
+ * Returns the current status of an image at the specified location in the image source.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ * - index: The zero-based index into the images of the image source. If the index is invalid, this method returns `NULL`.
+ *
+ * - Returns: Returns the current status of the image. See ``CGImageSourceStatus`` for a list of possible values.
+ *
+ * Status information is particularly informative for incremental image sources, but you may also use it on image sources that contain non-incremental data.
+ */
IMAGEIO_EXTERN CGImageSourceStatus CGImageSourceGetStatusAtIndex(CGImageSourceRef _iio_Nonnull isrc, size_t index) IMAGEIO_AVAILABLE_STARTING(10.4, 4.0);
/* Return the primary image index for HEIF images.
* Zero for all other formats.
*/
+/**
+ * Returns the index of the primary image for an High Efficiency Image File Format (HEIF) image.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ *
+ * - Returns: The index of the primary image, or `0` for image formats other than the HEIF format.
+ */
IMAGEIO_EXTERN size_t CGImageSourceGetPrimaryImageIndex(CGImageSourceRef _iio_Nonnull isrc) IMAGEIO_AVAILABLE_STARTING(10.14, 12.0);
/* Auxiliary data support for JPEG, HEIF, and DNG images (kCGImageAuxiliaryDataTypeDepth, ...)
@@ -233,6 +528,16 @@
* - optional color space (CGColorSpaceRef) - (kCGImageAuxiliaryDataInfoColorSpace)
* CGImageSourceCopyAuxiliaryDataInfoAtIndex returns nil if the image did not contain ‘auxiliaryImageDataType’ data.
*/
+/**
+ * Returns auxiliary data, such as mattes and depth information, that accompany the image.
+ *
+ * - Parameters:
+ * - isrc: The image source that contains the image data.
+ * - index: The zero-based index into the images of the image source. If the index is invalid, this method returns `NULL`.
+ * - auxiliaryImageDataType: The auxiliary data to retrieve. For a list of possible values, see <doc:individual-image-properties#Auxiliary-Image-Data> and <doc:individual-image-properties#Auxiliary-Data-Types>.
+ *
+ * - Returns: A dictionary that contains the auxiliary data, or `NULL` if an error occurs.
+ */
IMAGEIO_EXTERN CFDictionaryRef _iio_Nullable CGImageSourceCopyAuxiliaryDataInfoAtIndex(CGImageSourceRef _iio_Nonnull isrc, size_t index, CFStringRef _iio_Nonnull auxiliaryImageDataType ) IMAGEIO_AVAILABLE_STARTING(10.13, 11.0);
@@ -240,6 +545,11 @@
/* kCGImageSourceDecodeRequest - value is one of the predefined keys (kCGImageSourceDecodeToHDR, kCGImageSourceDecodeToSDR, ...)
*/
+/**
+ * ## Overview
+ *
+ * For more information, see [Image I/O Programming Guide](https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/ImageIOGuide/imageio_intro/ikpg_intro.html#//apple_ref/doc/uid/TP40005462).
+ */
IMAGEIO_EXTERN const CFStringRef kCGImageSourceDecodeRequest IMAGEIO_AVAILABLE_STARTING(14.0, 17.0, 17.0, 10.0);
IMAGEIO_EXTERN const CFStringRef kCGImageSourceDecodeToHDR IMAGEIO_AVAILABLE_STARTING(14.0, 17.0, 17.0, 10.0);
@@ -260,6 +570,23 @@
* an array of type identifiers.
* The 'allowableTypes' array should contain valid type identifiers.
* CGImageSourceSetAllowableTypes can only be called once.
+ */
+
+/**
+ * Restricts which image formats can be decoded in the current process.
+ *
+ * When this method has been called, ImageIO will only decode images whose format matches one of the entries in the allow list for the remaining lifetime of the process.
+ *
+ * If per-asset format restrictions are set via ``kCGImageSourceAllowableTypes``,
+ * only formats allowed by both mechanisms are permitted.
+ * If `allowableTypes` is empty, all image parsing is disabled.
+ * Unknown format identifiers are ignored.
+ * Can only be called once per process; subsequent calls are ignored.
+ *
+ * See also <doc://com.apple.documentation/documentation/uniformtypeidentifiers/system-declared-uniform-type-identifiers>.
+ *
+ * - Parameters:
+ * - allowableTypes: A <doc://com.apple.documentation/documentation/corefoundation/cfarray> containing <doc://com.apple.documentation/documentation/corefoundation/cfstring> Uniform Type Identifiers (UTIs) of allowed image formats.
*/
IMAGEIO_EXTERN OSStatus CGImageSourceSetAllowableTypes(CFArrayRef allowableTypes) IMAGEIO_AVAILABLE_STARTING(14.2, 17.2, 17.2, 10.2);