• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 /**
17  * @addtogroup image
18  * @{
19  *
20  * @brief Provides APIs for access to the image interface.
21  *
22  * @since 12
23  */
24 
25 /**
26  * @file image_common.h
27  *
28  * @brief Declares the common enums and structs used by the image interface.
29  *
30  * @library libimage_common.so
31  * @kit ImageKit
32  * @syscap SystemCapability.Multimedia.Image.Core
33  * @since 12
34  */
35 
36 #ifndef INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_IMAGE_COMMON_H_
37 #define INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_IMAGE_COMMON_H_
38 #include <stdint.h>
39 #include <stddef.h>
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /**
46  * @brief Defines the image size.
47  *
48  * @since 12
49  */
50 struct Image_Size {
51     /** Image width, in pixels. */
52     uint32_t width;
53     /** Image height, in pixels. */
54     uint32_t height;
55 };
56 
57 /**
58  * @brief Declaration the image size.
59  *
60  * @since 12
61  */
62 typedef struct Image_Size Image_Size;
63 
64 /**
65  * @brief Defines the region of the image source to decode.
66  *
67  * @since 12
68  */
69 struct Image_Region {
70     /** X coordinate of the start point, in pixels. */
71     uint32_t x;
72     /** Y coordinate of the start point, in pixels. */
73     uint32_t y;
74     /** Width of the region, in pixels. */
75     uint32_t width;
76     /** Height of the region, in pixels. */
77     uint32_t height;
78 };
79 
80 /**
81  * @brief Declaration the image region.
82  *
83  * @since 12
84  */
85 typedef struct Image_Region Image_Region;
86 
87 #ifdef __cplusplus
88 /**
89  * @brief Defines the region of the image source to decode.
90  *
91  * @since 12
92  */
93 struct Image_String {
94     /** data for string type */
95     char *data = nullptr;
96     /** data lenth for string type */
97     size_t size = 0;
98 };
99 #else
100 /**
101  * @brief Defines the region of the image source to decode.
102  *
103  * @since 12
104  */
105 struct Image_String {
106     /** data for string type */
107     char *data;
108     /** data lenth for string type */
109     size_t size;
110 };
111 #endif
112 
113 /**
114  * @brief Define a PictureMetadata struct type, used for picture metadata.
115  *
116  * @since 13
117  */
118 struct OH_PictureMetadata;
119 
120 /**
121  * @brief Define a PictureMetadata struct type, used for picture metadata.
122  *
123  * @since 13
124  */
125 typedef struct OH_PictureMetadata OH_PictureMetadata;
126 
127 /**
128  * @brief Defines the property string (in key-value format) of the image source.
129  *
130  * @since 12
131  */
132 typedef struct Image_String Image_String;
133 
134 /**
135  * @brief Defines the image encode format.
136  *
137  * @since 12
138  */
139 typedef struct Image_String Image_MimeType;
140 
141 /**
142  * @brief Enumerates the return values that may be used by the interface.
143  *
144  * @since 12
145  */
146 typedef enum {
147     /** operation success */
148     IMAGE_SUCCESS = 0,
149     /** invalid parameter */
150     IMAGE_BAD_PARAMETER = 401,
151     /** unsupported mime type */
152     IMAGE_UNSUPPORTED_MIME_TYPE = 7600101,
153     /** unknown mime type */
154     IMAGE_UNKNOWN_MIME_TYPE = 7600102,
155     /** too large data or image */
156     IMAGE_TOO_LARGE = 7600103,
157     /** @error DMA memory does not exist */
158     IMAGE_DMA_NOT_EXIST = 7600173,
159     /** @error DMA operation failed */
160     IMAGE_DMA_OPERATION_FAILED = 7600174,
161     /** unsupported operations */
162     IMAGE_UNSUPPORTED_OPERATION = 7600201,
163     /** unsupported metadata */
164     IMAGE_UNSUPPORTED_METADATA = 7600202,
165     /** unsupported conversion */
166     IMAGE_UNSUPPORTED_CONVERSION = 7600203,
167     /** invalid region */
168     IMAGE_INVALID_REGION = 7600204,
169     /** @error unsupported memory format
170      *  @since 13
171      */
172     IMAGE_UNSUPPORTED_MEMORY_FORMAT = 7600205,
173     /**
174      * @error Invalid parameter.
175      * @since 19
176      */
177     IMAGE_INVALID_PARAMETER = 7600206,
178     /** failed to allocate memory */
179     IMAGE_ALLOC_FAILED = 7600301,
180     /** memory copy failed */
181     IMAGE_COPY_FAILED = 7600302,
182     /**
183      * @error memory lock or unlock failed
184      * @since 15
185      */
186     IMAGE_LOCK_UNLOCK_FAILED = 7600303,
187     /**
188      * @error unsupported allocator mode, e.g., use share memory to create a HDR image as only
189      * DMA supported hdr metadata.
190      * @since 20
191      */
192     IMAGE_ALLOCATOR_MODE_UNSUPPORTED = 7600501,
193     /** unknown error */
194     IMAGE_UNKNOWN_ERROR = 7600901,
195     /** decode data source exception */
196     IMAGE_BAD_SOURCE = 7700101,
197     /**
198      * @error unsupported mime type
199      * @since 15
200      */
201     IMAGE_SOURCE_UNSUPPORTED_MIME_TYPE = 7700102,
202     /**
203      * @error image to large
204      * @since 15
205      */
206     IMAGE_SOURCE_TOO_LARGE = 7700103,
207     /**
208      * @error unsupported allocator type, e.g., use share memory to decode a HDR image as only
209      * DMA supported hdr metadata.
210      * @since 15
211      */
212     IMAGE_SOURCE_UNSUPPORTED_ALLOCATOR_TYPE = 7700201,
213     /* @error unsupported options, e.g, cannot convert image into desired pixel format.
214      * @since 15
215      */
216     IMAGE_SOURCE_UNSUPPORTED_OPTIONS = 7700203,
217     /**
218      * @error Invalid parameter.
219      * @since 19
220      */
221     IMAGE_SOURCE_INVALID_PARAMETER = 7700204,
222     /** decode failed */
223     IMAGE_DECODE_FAILED = 7700301,
224     /**
225      * @error memory allocation failed
226      * @since 15
227      */
228     IMAGE_SOURCE_ALLOC_FAILED = 7700302,
229     /**
230      * @error Invalid parameter for ImagePacker.
231      * @since 19
232      */
233     IMAGE_PACKER_INVALID_PARAMETER = 7800202,
234     /** encode failed */
235     IMAGE_ENCODE_FAILED = 7800301,
236     /**
237      * @error Invalid parameter for ImageReceiver.
238      * @since 20
239      */
240     IMAGE_RECEIVER_INVALID_PARAMETER = 7900201,
241 } Image_ErrorCode;
242 
243 /**
244  * @brief Define the metadata type.
245  *
246  * @since 13
247  */
248 typedef enum {
249     /**
250      * EXIF metadata.
251      */
252     EXIF_METADATA = 1,
253 
254     /**
255      * Fragment metadata.
256      */
257     FRAGMENT_METADATA = 2,
258 
259     /**
260      * Metadata of a GIF image.
261      *
262      * @since 20
263      */
264     GIF_METADATA = 5
265 } Image_MetadataType;
266 
267 /**
268  * @brief Type of allocator used to allocate memory of a PixelMap.
269  *
270  * @since 20
271  */
272 typedef enum {
273     /**
274      * The system determines which memory to use to create the PixelMap.
275      *
276      * @since 20
277      */
278     IMAGE_ALLOCATOR_MODE_AUTO = 0,
279     /**
280      * Use DMA buffer to create the PixelMap.
281      *
282      * @since 20
283      */
284     IMAGE_ALLOCATOR_MODE_DMA = 1,
285     /**
286      * Use share memory to create the PixelMap.
287      *
288      * @since 20
289      */
290     IMAGE_ALLOCATOR_MODE_SHARED_MEMORY = 2,
291 } IMAGE_ALLOCATOR_MODE;
292 
293 /**
294  * @brief Creates a <b>PictureMetadata</b> object.
295  *
296  * @param metadataType The type of metadata.
297  * @param metadata The PictureMetadata pointer will be operated.
298  * @return Image functions result code.
299  *         {@link IMAGE_SUCCESS} if the execution is successful.
300  *         {@link IMAGE_BAD_PARAMETER} metadata is nullptr.
301  * @since 13
302  */
303 Image_ErrorCode OH_PictureMetadata_Create(Image_MetadataType metadataType, OH_PictureMetadata **metadata);
304 
305 /**
306  * @brief Obtains the property of picture metadata.
307  *
308  * @param metadata The PictureMetadata pointer will be operated.
309  * @param key The property's key.
310  * @param value The property's value.
311  * @return Image functions result code.
312  *         {@link IMAGE_SUCCESS} if the execution is successful.
313  *         {@link IMAGE_BAD_PARAMETER} metadata is nullptr, or key is nullptr, or value is nullptr.
314  *         {@link IMAGE_UNSUPPORTED_METADATA} unsupported metadata type, or the metadata type does not match the
315  *         auxiliary picture type.
316  * @since 13
317  */
318 Image_ErrorCode OH_PictureMetadata_GetProperty(OH_PictureMetadata *metadata, Image_String *key, Image_String *value);
319 
320 /**
321  * @brief Set picture metadata property.
322  *
323  * @param metadata The PictureMetadata pointer will be operated.
324  * @param key The property's key.
325  * @param value The property's value.
326  * @return Image functions result code.
327  *         {@link IMAGE_SUCCESS} if the execution is successful.
328  *         {@link IMAGE_BAD_PARAMETER} metadata is nullptr, or key is nullptr, or value is nullptr.
329  *         {@link IMAGE_UNSUPPORTED_METADATA} unsupported metadata type, or the metadata type does not match the
330  *         auxiliary picture type.
331  * @since 13
332  */
333 Image_ErrorCode OH_PictureMetadata_SetProperty(OH_PictureMetadata *metadata, Image_String *key, Image_String *value);
334 
335 /**
336  * @brief Obtains the property of picture metadata. The output value.data is null-terminated.
337  *
338  * @param metadata Pointer to OH_PictureMetadata.
339  * @param key Pointer to property's key.
340  * @param value Pointer to property's value. Output parameter.
341  * @return Image functions result code.
342  *         {@link IMAGE_SUCCESS} if the execution is successful.
343  *         {@link IMAGE_INVALID_PARAMETER} metadata is nullptr, or key is nullptr, or value is nullptr.
344  *         {@link IMAGE_UNSUPPORTED_METADATA} unsupported metadata type, or the metadata type does not match the
345  *         auxiliary picture type.
346  * @since 19
347  */
348 Image_ErrorCode OH_PictureMetadata_GetPropertyWithNull(OH_PictureMetadata *metadata, Image_String *key, Image_String *value);
349 
350 /**
351  * @brief Releases this PictureMetadata object.
352  *
353  * @param metadata The PictureMetadata pointer will be operated.
354  * @return Image functions result code.
355  *         {@link IMAGE_SUCCESS} if the execution is successful.
356  *         {@link IMAGE_BAD_PARAMETER} metadata is nullptr.
357  * @since 13
358  */
359 Image_ErrorCode OH_PictureMetadata_Release(OH_PictureMetadata *metadata);
360 
361 /**
362  * @brief Obtains a clone of metadata.
363  *
364  * @param oldMetadata The PictureMetadata pointer will be operated.
365  * @param newMetadata The PictureMetadata pointer will be cloned.
366  * @return Image functions result code.
367  *         {@link IMAGE_SUCCESS} if the execution is successful.
368  *         {@link IMAGE_BAD_PARAMETER} metadata is nullptr.
369  *         {@link IMAGE_ALLOC_FAILED} memory alloc failed.
370  *         {@link IMAGE_COPY_FAILED} memory copy failed.
371  * @since 13
372  */
373 Image_ErrorCode OH_PictureMetadata_Clone(OH_PictureMetadata *oldMetadata, OH_PictureMetadata **newMetadata);
374 
375 /**
376  * @brief Defines the bmp mime type.
377  *
378  * @since 12
379  */
380 static const char* MIME_TYPE_BMP = "image/bmp";
381 
382 /**
383  * @brief Defines the jpeg mime type.
384  *
385  * @since 12
386  */
387 static const char* MIME_TYPE_JPEG = "image/jpeg";
388 
389 /**
390  * @brief Defines the heic mime type.
391  *
392  * @since 12
393  */
394 static const char* MIME_TYPE_HEIC = "image/heic";
395 
396 /**
397  * @brief Defines the png mime type.
398  *
399  * @since 12
400  */
401 static const char* MIME_TYPE_PNG = "image/png";
402 
403 /**
404  * @brief Defines the webp mime type.
405  *
406  * @since 12
407  */
408 static const char* MIME_TYPE_WEBP = "image/webp";
409 
410 /**
411  * @brief Defines the gif mime type.
412  *
413  * @since 12
414  */
415 static const char* MIME_TYPE_GIF = "image/gif";
416 
417 /**
418  * @brief Defines the x-icon mime type.
419  *
420  * @since 12
421  */
422 static const char* MIME_TYPE_ICON = "image/x-icon";
423 
424 /**
425  * @brief Defines a pointer to bits per sample, one of the image properties.
426  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
427  *
428  * @since 12
429  */
430 static const char *OHOS_IMAGE_PROPERTY_BITS_PER_SAMPLE = "BitsPerSample";
431 
432 /**
433  * @brief Defines a pointer to the orientation, one of the image properties.
434  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
435  *
436  * @since 12
437  */
438 static const char *OHOS_IMAGE_PROPERTY_ORIENTATION = "Orientation";
439 
440 /**
441  * @brief Defines a pointer to the image length, one of the image properties.
442  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
443  *
444  * @since 12
445  */
446 static const char *OHOS_IMAGE_PROPERTY_IMAGE_LENGTH = "ImageLength";
447 
448 /**
449  * @brief Defines a pointer to the image width, one of the image properties.
450  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
451  *
452  * @since 12
453  */
454 static const char *OHOS_IMAGE_PROPERTY_IMAGE_WIDTH = "ImageWidth";
455 
456 /**
457  * @brief Defines a pointer to the GPS latitude, one of the image properties.
458  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
459  *
460  * @since 12
461  */
462 static const char *OHOS_IMAGE_PROPERTY_GPS_LATITUDE = "GPSLatitude";
463 
464 /**
465  * @brief Defines a pointer to the GPS longitude, one of the image properties.
466  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
467  *
468  * @since 12
469  */
470 static const char *OHOS_IMAGE_PROPERTY_GPS_LONGITUDE = "GPSLongitude";
471 
472 /**
473  * @brief Defines a pointer to the GPS latitude reference information, one of the image properties.
474  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
475  *
476  * @since 12
477  */
478 static const char *OHOS_IMAGE_PROPERTY_GPS_LATITUDE_REF = "GPSLatitudeRef";
479 
480 /**
481  * @brief Defines a pointer to the GPS longitude reference information, one of the image properties.
482  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
483  *
484  * @since 12
485  */
486 static const char *OHOS_IMAGE_PROPERTY_GPS_LONGITUDE_REF = "GPSLongitudeRef";
487 
488 /**
489  * @brief Defines a pointer to the created date and time, one of the image properties.
490  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
491  *
492  * @since 12
493  */
494 static const char *OHOS_IMAGE_PROPERTY_DATE_TIME_ORIGINAL = "DateTimeOriginal";
495 
496 /**
497  * @brief Defines a pointer to the exposure time, one of the image properties.
498  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
499  *
500  * @since 12
501  */
502 static const char *OHOS_IMAGE_PROPERTY_EXPOSURE_TIME = "ExposureTime";
503 
504 /**
505  * @brief Defines a pointer to the scene type, one of the image properties.
506  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
507  *
508  * @since 12
509  */
510 static const char *OHOS_IMAGE_PROPERTY_SCENE_TYPE = "SceneType";
511 
512 /**
513  * @brief Defines a pointer to the ISO speed ratings, one of the image properties.
514  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
515  *
516  * @since 12
517  */
518 static const char *OHOS_IMAGE_PROPERTY_ISO_SPEED_RATINGS = "ISOSpeedRatings";
519 
520 /**
521  * @brief Defines a pointer to the f-number of the image, one of the image properties.
522  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
523  *
524  * @since 12
525  */
526 static const char *OHOS_IMAGE_PROPERTY_F_NUMBER = "FNumber";
527 
528 /**
529  * @brief Defines a pointer to the compressed bits per pixel, one of the image properties.
530  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
531  *
532  * @since 12
533  */
534 static const char *OHOS_IMAGE_PROPERTY_COMPRESSED_BITS_PER_PIXEL = "CompressedBitsPerPixel";
535 
536 /**
537  * @brief The scheme used for image compression.
538  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
539  *
540  * @since 12
541  */
542 static const char *OHOS_IMAGE_PROPERTY_COMPRESSION = "Compression";
543 
544 /**
545  * @brief Pixel composition, such as RGB or YCbCr.
546  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
547  *
548  * @since 12
549  */
550 static const char *OHOS_IMAGE_PROPERTY_PHOTOMETRIC_INTERPRETATION = "PhotometricInterpretation";
551 
552 /**
553  * @brief For each strip, the byte offset of that strip.
554  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
555  *
556  * @since 12
557  */
558 static const char *OHOS_IMAGE_PROPERTY_STRIP_OFFSETS = "StripOffsets";
559 
560 /**
561  * @brief The number of components per pixel.
562  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
563  *
564  * @since 12
565  */
566 static const char *OHOS_IMAGE_PROPERTY_SAMPLES_PER_PIXEL = "SamplesPerPixel";
567 
568 /**
569  * @brief The number of rows per strip of image data.
570  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
571  *
572  * @since 12
573  */
574 static const char *OHOS_IMAGE_PROPERTY_ROWS_PER_STRIP = "RowsPerStrip";
575 
576 /**
577  * @brief The total number of bytes in each strip of image data.
578  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
579  *
580  * @since 12
581  */
582 static const char *OHOS_IMAGE_PROPERTY_STRIP_BYTE_COUNTS = "StripByteCounts";
583 
584 /**
585  * @brief The image resolution in the width direction.
586  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
587  *
588  * @since 12
589  */
590 static const char *OHOS_IMAGE_PROPERTY_X_RESOLUTION = "XResolution";
591 
592 /**
593  * @brief The image resolution in the height direction.
594  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
595  *
596  * @since 12
597  */
598 static const char *OHOS_IMAGE_PROPERTY_Y_RESOLUTION = "YResolution";
599 
600 /**
601  * @brief Indicates whether pixel components are recorded in a chunky or planar format.
602  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
603  *
604  * @since 12
605  */
606 static const char *OHOS_IMAGE_PROPERTY_PLANAR_CONFIGURATION = "PlanarConfiguration";
607 
608 /**
609  * @brief The unit used to measure XResolution and YResolution.
610  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
611  *
612  * @since 12
613  */
614 static const char *OHOS_IMAGE_PROPERTY_RESOLUTION_UNIT = "ResolutionUnit";
615 
616 /**
617  * @brief The transfer function for the image, typically used for color correction.
618  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
619  *
620  * @since 12
621  */
622 static const char *OHOS_IMAGE_PROPERTY_TRANSFER_FUNCTION = "TransferFunction";
623 
624 /**
625  * @brief The name and version of the software used to generate the image.
626  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
627  *
628  * @since 12
629  */
630 static const char *OHOS_IMAGE_PROPERTY_SOFTWARE = "Software";
631 
632 /**
633  * @brief The name of the person who created the image.
634  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
635  *
636  * @since 12
637  */
638 static const char *OHOS_IMAGE_PROPERTY_ARTIST = "Artist";
639 
640 /**
641  * @brief The chromaticity of the white point of the image.
642  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
643  *
644  * @since 12
645  */
646 static const char *OHOS_IMAGE_PROPERTY_WHITE_POINT = "WhitePoint";
647 
648 /**
649  * @brief The chromaticity of the primary colors of the image.
650  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
651  *
652  * @since 12
653  */
654 static const char *OHOS_IMAGE_PROPERTY_PRIMARY_CHROMATICITIES = "PrimaryChromaticities";
655 
656 /**
657  * @brief The matrix coefficients for transformation from RGB to YCbCr image data.
658  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
659  *
660  * @since 12
661  */
662 static const char *OHOS_IMAGE_PROPERTY_YCBCR_COEFFICIENTS = "YCbCrCoefficients";
663 
664 /**
665  * @brief The sampling ratio of chrominance components to the luminance component.
666  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
667  *
668  * @since 12
669  */
670 static const char *OHOS_IMAGE_PROPERTY_YCBCR_SUB_SAMPLING = "YCbCrSubSampling";
671 
672 /**
673  * @brief The position of chrominance components in relation to the luminance component.
674  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
675  *
676  * @since 12
677  */
678 static const char *OHOS_IMAGE_PROPERTY_YCBCR_POSITIONING = "YCbCrPositioning";
679 
680 /**
681  * @brief The reference black point value and reference white point value.
682  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
683  *
684  * @since 12
685  */
686 static const char *OHOS_IMAGE_PROPERTY_REFERENCE_BLACK_WHITE = "ReferenceBlackWhite";
687 
688 /**
689  * @brief Copyright information for the image.
690  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
691  *
692  * @since 12
693  */
694 static const char *OHOS_IMAGE_PROPERTY_COPYRIGHT = "Copyright";
695 
696 /**
697  * @brief The offset to the start byte (SOI) of JPEG compressed thumbnail data.
698  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
699  *
700  * @since 12
701  */
702 static const char *OHOS_IMAGE_PROPERTY_JPEG_INTERCHANGE_FORMAT = "JPEGInterchangeFormat";
703 
704 /**
705  * @brief The number of bytes of JPEG compressed thumbnail data.
706  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
707  *
708  * @since 12
709  */
710 static const char *OHOS_IMAGE_PROPERTY_JPEG_INTERCHANGE_FORMAT_LENGTH = "JPEGInterchangeFormatLength";
711 
712 /**
713  * @brief The class of the program used by the camera to set exposure when the picture is taken.
714  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
715  *
716  * @since 12
717  */
718 static const char *OHOS_IMAGE_PROPERTY_EXPOSURE_PROGRAM = "ExposureProgram";
719 
720 /**
721  * @brief Indicates the spectral sensitivity of each channel of the camera used.
722  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
723  *
724  * @since 12
725  */
726 static const char *OHOS_IMAGE_PROPERTY_SPECTRAL_SENSITIVITY = "SpectralSensitivity";
727 
728 /**
729  * @brief Indicates the Opto-Electric Conversion Function (OECF) specified in ISO 14524.
730  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
731  *
732  * @since 12
733  */
734 static const char *OHOS_IMAGE_PROPERTY_OECF = "OECF";
735 
736 /**
737  * @brief The version of the Exif standard supported.
738  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
739  *
740  * @since 12
741  */
742 static const char *OHOS_IMAGE_PROPERTY_EXIF_VERSION = "ExifVersion";
743 
744 /**
745  * @brief The date and time when the image was stored as digital data.
746  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
747  *
748  * @since 12
749  */
750 static const char *OHOS_IMAGE_PROPERTY_DATE_TIME_DIGITIZED = "DateTimeDigitized";
751 
752 /**
753  * @brief Information specific to compressed data.
754  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
755  *
756  * @since 12
757  */
758 static const char *OHOS_IMAGE_PROPERTY_COMPONENTS_CONFIGURATION = "ComponentsConfiguration";
759 
760 /**
761  * @brief The shutter speed, expressed as an APEX (Additive System of Photographic Exposure) value.
762  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
763  *
764  * @since 12
765  */
766 static const char *OHOS_IMAGE_PROPERTY_SHUTTER_SPEED_VALUE = "ShutterSpeedValue";
767 
768 /**
769  * @brief The brightness value of the image, in APEX units.
770  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
771  *
772  * @since 12
773  */
774 static const char *OHOS_IMAGE_PROPERTY_BRIGHTNESS_VALUE = "BrightnessValue";
775 
776 /**
777  * @brief The smallest F number of lens.
778  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
779  *
780  * @since 12
781  */
782 static const char *OHOS_IMAGE_PROPERTY_MAX_APERTURE_VALUE = "MaxApertureValue";
783 
784 /**
785  * @brief The distance to the subject, measured in meters.
786  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
787  *
788  * @since 12
789  */
790 static const char *OHOS_IMAGE_PROPERTY_SUBJECT_DISTANCE = "SubjectDistance";
791 
792 /**
793  * @brief This tag indicate the location and area of the main subject in the overall scene.
794  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
795  *
796  * @since 12
797  */
798 static const char *OHOS_IMAGE_PROPERTY_SUBJECT_AREA = "SubjectArea";
799 
800 /**
801  * @brief A tag for manufacturers of Exif/DCF writers to record any desired infomation.
802  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
803  *
804  * @since 12
805  */
806 static const char *OHOS_IMAGE_PROPERTY_MAKER_NOTE = "MakerNote";
807 
808 /**
809  * @brief A tag for record fractions of seconds for the DateTime tag.
810  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
811  *
812  * @since 12
813  */
814 static const char *OHOS_IMAGE_PROPERTY_SUBSEC_TIME = "SubsecTime";
815 
816 /**
817  * @brief A tag used to record fractions of seconds for the DateTimeOriginal tag.
818  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
819  *
820  * @since 12
821  */
822 static const char *OHOS_IMAGE_PROPERTY_SUBSEC_TIME_ORIGINAL = "SubsecTimeOriginal";
823 
824 /**
825  * @brief A tag used to record fractions of seconds for the DateTimeDigitized tag.
826  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
827  *
828  * @since 12
829  */
830 static const char *OHOS_IMAGE_PROPERTY_SUBSEC_TIME_DIGITIZED = "SubsecTimeDigitized";
831 
832 /**
833  * @brief This tag denotes the Flashpix format version supported by an FPXR file, enhancing device compatibility.
834  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
835  *
836  * @since 12
837  */
838 static const char *OHOS_IMAGE_PROPERTY_FLASHPIX_VERSION = "FlashpixVersion";
839 
840 /**
841  * @brief The color space information tag, often recorded as the color space specifier.
842  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
843  *
844  * @since 12
845  */
846 static const char *OHOS_IMAGE_PROPERTY_COLOR_SPACE = "ColorSpace";
847 
848 /**
849  * @brief The name of an audio file related to the image data.
850  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
851  *
852  * @since 12
853  */
854 static const char *OHOS_IMAGE_PROPERTY_RELATED_SOUND_FILE = "RelatedSoundFile";
855 
856 /**
857  * @brief Strobe energy at image capture, in BCPS.
858  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
859  *
860  * @since 12
861  */
862 static const char *OHOS_IMAGE_PROPERTY_FLASH_ENERGY = "FlashEnergy";
863 
864 /**
865  * @brief Camera or input device spatial frequency table.
866  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
867  *
868  * @since 12
869  */
870 static const char *OHOS_IMAGE_PROPERTY_SPATIAL_FREQUENCY_RESPONSE = "SpatialFrequencyResponse";
871 
872 /**
873  * @brief Pixels per FocalPlaneResolutionUnit in the image width.
874  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
875  *
876  * @since 12
877  */
878 static const char *OHOS_IMAGE_PROPERTY_FOCAL_PLANE_X_RESOLUTION = "FocalPlaneXResolution";
879 
880 /**
881  * @brief Pixels per FocalPlaneResolutionUnit in the image height.
882  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
883  *
884  * @since 12
885  */
886 static const char *OHOS_IMAGE_PROPERTY_FOCAL_PLANE_Y_RESOLUTION = "FocalPlaneYResolution";
887 
888 /**
889  * @brief Unit for measuring FocalPlaneXResolution and FocalPlaneYResolution.
890  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
891  *
892  * @since 12
893  */
894 static const char *OHOS_IMAGE_PROPERTY_FOCAL_PLANE_RESOLUTION_UNIT = "FocalPlaneResolutionUnit";
895 
896 /**
897  * @brief Location of the main subject, relative to the left edge.
898  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
899  *
900  * @since 12
901  */
902 static const char *OHOS_IMAGE_PROPERTY_SUBJECT_LOCATION = "SubjectLocation";
903 
904 /**
905  * @brief Selected exposure index at capture.
906  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
907  *
908  * @since 12
909  */
910 static const char *OHOS_IMAGE_PROPERTY_EXPOSURE_INDEX = "ExposureIndex";
911 
912 /**
913  * @brief Image sensor type on the camera.
914  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
915  *
916  * @since 12
917  */
918 static const char *OHOS_IMAGE_PROPERTY_SENSING_METHOD = "SensingMethod";
919 
920 /**
921  * @brief Indicates the image source.
922  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
923  *
924  * @since 12
925  */
926 static const char *OHOS_IMAGE_PROPERTY_FILE_SOURCE = "FileSource";
927 
928 /**
929  * @brief Color filter array (CFA) geometric pattern of the image sensor.
930  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
931  *
932  * @since 12
933  */
934 static const char *OHOS_IMAGE_PROPERTY_CFA_PATTERN = "CFAPattern";
935 
936 /**
937  * @brief Indicates special processing on image data.
938  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
939  *
940  * @since 12
941  */
942 static const char *OHOS_IMAGE_PROPERTY_CUSTOM_RENDERED = "CustomRendered";
943 
944 /**
945  * @brief Exposure mode set when the image was shot.
946  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
947  *
948  * @since 12
949  */
950 static const char *OHOS_IMAGE_PROPERTY_EXPOSURE_MODE = "ExposureMode";
951 
952 /**
953  * @brief Digital zoom ratio at the time of capture.
954  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
955  *
956  * @since 12
957  */
958 static const char *OHOS_IMAGE_PROPERTY_DIGITAL_ZOOM_RATIO = "DigitalZoomRatio";
959 
960 /**
961  * @brief Type of scene captured.
962  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
963  *
964  * @since 12
965  */
966 static const char *OHOS_IMAGE_PROPERTY_SCENE_CAPTURE_TYPE = "SceneCaptureType";
967 
968 /**
969  * @brief Degree of overall image gain adjustment.
970  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
971  *
972  * @since 12
973  */
974 static const char *OHOS_IMAGE_PROPERTY_GAIN_CONTROL = "GainControl";
975 
976 /**
977  * @brief Direction of contrast processing applied by the camera.
978  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
979  *
980  * @since 12
981  */
982 static const char *OHOS_IMAGE_PROPERTY_CONTRAST = "Contrast";
983 
984 /**
985  * @brief Direction of saturation processing applied by the camera.
986  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
987  *
988  * @since 12
989  */
990 static const char *OHOS_IMAGE_PROPERTY_SATURATION = "Saturation";
991 
992 /**
993  * @brief The direction of sharpness processing applied by the camera.
994  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
995  *
996  * @since 12
997  */
998 static const char *OHOS_IMAGE_PROPERTY_SHARPNESS = "Sharpness";
999 
1000 /**
1001  * @brief Information on picture-taking conditions for a specific camera model.
1002  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1003  *
1004  * @since 12
1005  */
1006 static const char *OHOS_IMAGE_PROPERTY_DEVICE_SETTING_DESCRIPTION = "DeviceSettingDescription";
1007 
1008 /**
1009  * @brief Indicates the distance range to the subject.
1010  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1011  *
1012  * @since 12
1013  */
1014 static const char *OHOS_IMAGE_PROPERTY_SUBJECT_DISTANCE_RANGE = "SubjectDistanceRange";
1015 
1016 /**
1017  * @brief An identifier uniquely assigned to each image.
1018  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1019  *
1020  * @since 12
1021  */
1022 static const char *OHOS_IMAGE_PROPERTY_IMAGE_UNIQUE_ID = "ImageUniqueID";
1023 
1024 /**
1025  * @brief The version of the GPSInfoIFD.
1026  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1027  *
1028  * @since 12
1029  */
1030 static const char *OHOS_IMAGE_PROPERTY_GPS_VERSION_ID = "GPSVersionID";
1031 
1032 /**
1033  * @brief Reference altitude used for GPS altitude.
1034  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1035  *
1036  * @since 12
1037  */
1038 static const char *OHOS_IMAGE_PROPERTY_GPS_ALTITUDE_REF = "GPSAltitudeRef";
1039 
1040 /**
1041  * @brief The altitude based on the reference in GPSAltitudeRef.
1042  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1043  *
1044  * @since 12
1045  */
1046 static const char *OHOS_IMAGE_PROPERTY_GPS_ALTITUDE = "GPSAltitude";
1047 
1048 /**
1049  * @brief The GPS satellites used for measurements.
1050  * Used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1051  *
1052  * @since 12
1053  */
1054 static const char *OHOS_IMAGE_PROPERTY_GPS_SATELLITES = "GPSSatellites";
1055 
1056 /**
1057  * @brief The status of the GPS receiver when the image is recorded.
1058  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1059  *
1060  * @since 12
1061  */
1062 static const char *OHOS_IMAGE_PROPERTY_GPS_STATUS = "GPSStatus";
1063 
1064 /**
1065  * @brief The GPS measurement mode.
1066  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1067  *
1068  * @since 12
1069  */
1070 static const char *OHOS_IMAGE_PROPERTY_GPS_MEASURE_MODE = "GPSMeasureMode";
1071 
1072 /**
1073  * @brief The GPS DOP (data degree of precision).
1074  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1075  *
1076  * @since 12
1077  */
1078 static const char *OHOS_IMAGE_PROPERTY_GPS_DOP = "GPSDOP";
1079 
1080 /**
1081  * @brief The unit used to express the GPS receiver speed of movement.
1082  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1083  *
1084  * @since 12
1085  */
1086 static const char *OHOS_IMAGE_PROPERTY_GPS_SPEED_REF = "GPSSpeedRef";
1087 
1088 /**
1089  * @brief The speed of GPS receiver movement.
1090  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1091  *
1092  * @since 12
1093  */
1094 static const char *OHOS_IMAGE_PROPERTY_GPS_SPEED = "GPSSpeed";
1095 
1096 /**
1097  * @brief The reference for giving the direction of GPS receiver movement.
1098  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1099  *
1100  * @since 12
1101  */
1102 static const char *OHOS_IMAGE_PROPERTY_GPS_TRACK_REF = "GPSTrackRef";
1103 
1104 /**
1105  * @brief The direction of GPS receiver movement.
1106  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1107  *
1108  * @since 12
1109  */
1110 static const char *OHOS_IMAGE_PROPERTY_GPS_TRACK = "GPSTrack";
1111 
1112 /**
1113  * @brief The reference for the image's direction.
1114  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1115  *
1116  * @since 12
1117  */
1118 static const char *OHOS_IMAGE_PROPERTY_GPS_IMG_DIRECTION_REF = "GPSImgDirectionRef";
1119 
1120 /**
1121  * @brief The direction of the image when captured.
1122  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1123  *
1124  * @since 12
1125  */
1126 static const char *OHOS_IMAGE_PROPERTY_GPS_IMG_DIRECTION = "GPSImgDirection";
1127 
1128 /**
1129  * @brief Geodetic survey data used by the GPS receiver.
1130  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1131  *
1132  * @since 12
1133  */
1134 static const char *OHOS_IMAGE_PROPERTY_GPS_MAP_DATUM = "GPSMapDatum";
1135 
1136 /**
1137  * @brief Indicates the latitude reference of the destination point.
1138  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1139  *
1140  * @since 12
1141  */
1142 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_LATITUDE_REF = "GPSDestLatitudeRef";
1143 
1144 /**
1145  * @brief The latitude of the destination point.
1146  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1147  *
1148  * @since 12
1149  */
1150 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_LATITUDE = "GPSDestLatitude";
1151 
1152 /**
1153  * @brief Indicates the longitude reference of the destination point.
1154  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1155  *
1156  * @since 12
1157  */
1158 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_LONGITUDE_REF = "GPSDestLongitudeRef";
1159 
1160 /**
1161  * @brief A character string recording the name of the method used for location finding.
1162  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1163  *
1164  * @since 12
1165  */
1166 static const char *OHOS_IMAGE_PROPERTY_GPS_PROCESSING_METHOD = "GPSProcessingMethod";
1167 
1168 /**
1169  * @brief A character string recording the name of the GPS area.
1170  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1171  *
1172  * @since 12
1173  */
1174 static const char *OHOS_IMAGE_PROPERTY_GPS_AREA_INFORMATION = "GPSAreaInformation";
1175 
1176 /**
1177  * @brief This field denotes if differential correction was applied to GPS data, crucial for precise location accuracy.
1178  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1179  *
1180  * @since 12
1181  */
1182 static const char *OHOS_IMAGE_PROPERTY_GPS_DIFFERENTIAL = "GPSDifferential";
1183 
1184 /**
1185  * @brief The serial number of the camera body.
1186  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1187  *
1188  * @since 12
1189  */
1190 static const char *OHOS_IMAGE_PROPERTY_BODY_SERIAL_NUMBER = "BodySerialNumber";
1191 
1192 /**
1193  * @brief The name of the camera owner.
1194  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1195  *
1196  * @since 12
1197  */
1198 static const char *OHOS_IMAGE_PROPERTY_CAMERA_OWNER_NAME = "CameraOwnerName";
1199 
1200 /**
1201  * @brief The name of the camera owner.
1202  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1203  *
1204  * @since 12
1205  */
1206 static const char *OHOS_IMAGE_PROPERTY_COMPOSITE_IMAGE = "CompositeImage";
1207 
1208 /**
1209  * @brief The DNGVersion tag encodes the four-tier version number for DNG specification compliance.
1210  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1211  *
1212  * @since 12
1213  */
1214 static const char *OHOS_IMAGE_PROPERTY_DNG_VERSION = "DNGVersion";
1215 
1216 /**
1217  * @brief The longitude of the destination point.
1218  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1219  *
1220  * @since 12
1221  */
1222 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_LONGITUDE = "GPSDestLongitude";
1223 
1224 /**
1225  * @brief The reference for the bearing to the destination point.
1226  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1227  *
1228  * @since 12
1229  */
1230 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_BEARING_REF = "GPSDestBearingRef";
1231 
1232 /**
1233  * @brief The bearing to the destination point.
1234  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1235  *
1236  * @since 12
1237  */
1238 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_BEARING = "GPSDestBearing";
1239 
1240 /**
1241  * @brief The measurement unit for the distance to the target point.
1242  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1243  *
1244  * @since 12
1245  */
1246 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_DISTANCE_REF = "GPSDestDistanceRef";
1247 
1248 /**
1249  * @brief The distance to the destination point.
1250  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1251  *
1252  * @since 12
1253  */
1254 static const char *OHOS_IMAGE_PROPERTY_GPS_DEST_DISTANCE = "GPSDestDistance";
1255 
1256 /**
1257  * @brief DefaultCropSize specifies the final image size in raw coordinates, accounting for extra edge pixels.
1258  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1259  *
1260  * @since 12
1261  */
1262 static const char *OHOS_IMAGE_PROPERTY_DEFAULT_CROP_SIZE = "DefaultCropSize";
1263 
1264 /**
1265  * @brief Indicates the value of coefficient gamma.
1266  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1267  *
1268  * @since 12
1269  */
1270 static const char *OHOS_IMAGE_PROPERTY_GAMMA = "Gamma";
1271 
1272 /**
1273  * @brief The tag indicate the ISO speed latitude yyy value of the camera or input device that is defined in ISO 12232.
1274  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1275  *
1276  * @since 12
1277  */
1278 static const char *OHOS_IMAGE_PROPERTY_ISO_SPEED_LATITUDEYYY = "ISOSpeedLatitudeyyy";
1279 
1280 /**
1281  * @brief The tag indicate the ISO speed latitude zzz value of the camera or input device that is defined in ISO 12232.
1282  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1283  *
1284  * @since 12
1285  */
1286 static const char *OHOS_IMAGE_PROPERTY_ISO_SPEED_LATITUDEZZZ = "ISOSpeedLatitudezzz";
1287 
1288 /**
1289  * @brief The manufacturer of the lens.
1290  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1291  *
1292  * @since 12
1293  */
1294 static const char *OHOS_IMAGE_PROPERTY_LENS_MAKE = "LensMake";
1295 
1296 /**
1297  * @brief The model name of the lens.
1298  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1299  *
1300  * @since 12
1301  */
1302 static const char *OHOS_IMAGE_PROPERTY_LENS_MODEL = "LensModel";
1303 
1304 /**
1305  * @brief The serial number of the lens.
1306  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1307  *
1308  * @since 12
1309  */
1310 static const char *OHOS_IMAGE_PROPERTY_LENS_SERIAL_NUMBER = "LensSerialNumber";
1311 
1312 /**
1313  * @brief Specifications of the lens used.
1314  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1315  *
1316  * @since 12
1317  */
1318 static const char *OHOS_IMAGE_PROPERTY_LENS_SPECIFICATION = "LensSpecification";
1319 
1320 /**
1321  * @brief This tag provides a broad description of the data type in this subfile.
1322  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1323  *
1324  * @since 12
1325  */
1326 static const char *OHOS_IMAGE_PROPERTY_NEW_SUBFILE_TYPE = "NewSubfileType";
1327 
1328 /**
1329  * @brief This tag records the UTC offset for the DateTime tag, ensuring accurate timestamps regardless of location.
1330  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1331  *
1332  * @since 12
1333  */
1334 static const char *OHOS_IMAGE_PROPERTY_OFFSET_TIME = "OffsetTime";
1335 
1336 /**
1337  * @brief This tag logs the UTC offset when the image was digitized, aiding in accurate timestamp adjustment.
1338  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1339  *
1340  * @since 12
1341  */
1342 static const char *OHOS_IMAGE_PROPERTY_OFFSET_TIME_DIGITIZED = "OffsetTimeDigitized";
1343 
1344 /**
1345  * @brief This tag records the UTC offset when the original image was created, crucial for time-sensitive applications.
1346  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1347  *
1348  * @since 12
1349  */
1350 static const char *OHOS_IMAGE_PROPERTY_OFFSET_TIME_ORIGINAL = "OffsetTimeOriginal";
1351 
1352 /**
1353  * @brief Exposure times of source images for a composite image.
1354  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1355  *
1356  * @since 12
1357  */
1358 static const char *OHOS_IMAGE_PROPERTY_SOURCE_EXPOSURE_TIMES_OF_COMPOSITE_IMAGE = "SourceExposureTimesOfCompositeImage";
1359 
1360 /**
1361  * @brief The number of source images used for a composite image.
1362  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1363  *
1364  * @since 12
1365  */
1366 static const char *OHOS_IMAGE_PROPERTY_SOURCE_IMAGE_NUMBER_OF_COMPOSITE_IMAGE = "SourceImageNumberOfCompositeImage";
1367 
1368 /**
1369  * @brief This deprecated field signifies the type of data in this subfile. Use the NewSubfileType field instead.
1370  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1371  *
1372  * @since 12
1373  */
1374 static const char *OHOS_IMAGE_PROPERTY_SUBFILE_TYPE = "SubfileType";
1375 
1376 /**
1377  * @brief This tag indicates horizontal positioning errors in meters.
1378  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1379  *
1380  * @since 12
1381  */
1382 static const char *OHOS_IMAGE_PROPERTY_GPS_H_POSITIONING_ERROR = "GPSHPositioningError";
1383 
1384 /**
1385  * @brief This tag indicates the sensitivity of the camera or input device when the image was shot.
1386  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1387  *
1388  * @since 12
1389  */
1390 static const char *OHOS_IMAGE_PROPERTY_PHOTOGRAPHIC_SENSITIVITY = "PhotographicSensitivity";
1391 
1392 /**
1393  * @brief Burst Number
1394  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1395  *
1396  * @since 12
1397  */
1398 static const char *OHOS_IMAGE_PROPERTY_BURST_NUMBER = "HwMnoteBurstNumber";
1399 
1400 /**
1401  * @brief Face Conf
1402  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1403  *
1404  * @since 12
1405  */
1406 static const char *OHOS_IMAGE_PROPERTY_FACE_CONF = "HwMnoteFaceConf";
1407 
1408 /**
1409  * @brief Face Leye Center
1410  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1411  *
1412  * @since 12
1413  */
1414 static const char *OHOS_IMAGE_PROPERTY_FACE_LEYE_CENTER = "HwMnoteFaceLeyeCenter";
1415 
1416 /**
1417  * @brief Face Mouth Center
1418  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1419  *
1420  * @since 12
1421  */
1422 static const char *OHOS_IMAGE_PROPERTY_FACE_MOUTH_CENTER = "HwMnoteFaceMouthCenter";
1423 
1424 /**
1425  * @brief Face Pointer
1426  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1427  *
1428  * @since 12
1429  */
1430 static const char *OHOS_IMAGE_PROPERTY_FACE_POINTER = "HwMnoteFacePointer";
1431 
1432 /**
1433  * @brief Face Rect
1434  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1435  *
1436  * @since 12
1437  */
1438 static const char *OHOS_IMAGE_PROPERTY_FACE_RECT = "HwMnoteFaceRect";
1439 
1440 /**
1441  * @brief Face Reye Center
1442  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1443  *
1444  * @since 12
1445  */
1446 static const char *OHOS_IMAGE_PROPERTY_FACE_REYE_CENTER = "HwMnoteFaceReyeCenter";
1447 
1448 /**
1449  * @brief Face Smile Score
1450  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1451  *
1452  * @since 12
1453  */
1454 static const char *OHOS_IMAGE_PROPERTY_FACE_SMILE_SCORE = "HwMnoteFaceSmileScore";
1455 
1456 /**
1457  * @brief Face Version
1458  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1459  *
1460  * @since 12
1461  */
1462 static const char *OHOS_IMAGE_PROPERTY_FACE_VERSION = "HwMnoteFaceVersion";
1463 
1464 /**
1465  * @brief Front Camera
1466  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1467  *
1468  * @since 12
1469  */
1470 static const char *OHOS_IMAGE_PROPERTY_FRONT_CAMERA = "HwMnoteFrontCamera";
1471 
1472 /**
1473  * @brief Scene Pointer
1474  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1475  *
1476  * @since 12
1477  */
1478 static const char *OHOS_IMAGE_PROPERTY_SCENE_POINTER = "HwMnoteScenePointer";
1479 
1480 /**
1481  * @brief Scene Version
1482  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1483  *
1484  * @since 12
1485  */
1486 static const char *OHOS_IMAGE_PROPERTY_SCENE_VERSION = "HwMnoteSceneVersion";
1487 
1488 /**
1489  * @brief Is Xmage Supported
1490  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1491  *
1492  * @since 12
1493  */
1494 static const char *OHOS_IMAGE_PROPERTY_IS_XMAGE_SUPPORTED = "HwMnoteIsXmageSupported";
1495 
1496 /**
1497  * @brief Xmage Mode
1498  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1499  *
1500  * @since 12
1501  */
1502 static const char *OHOS_IMAGE_PROPERTY_XMAGE_MODE = "HwMnoteXmageMode";
1503 
1504 /**
1505  * @brief Xmage X1 Coordinate
1506  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1507  *
1508  * @since 12
1509  */
1510 static const char *OHOS_IMAGE_PROPERTY_XMAGE_LEFT = "HwMnoteXmageLeft";
1511 
1512 /**
1513  * @brief Xmage Y1 Coordinate
1514  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1515  *
1516  * @since 12
1517  */
1518 static const char *OHOS_IMAGE_PROPERTY_XMAGE_TOP = "HwMnoteXmageTop";
1519 
1520 /**
1521  * @brief Xmage X2 Coordinate
1522  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1523  *
1524  * @since 12
1525  */
1526 static const char *OHOS_IMAGE_PROPERTY_XMAGE_RIGHT = "HwMnoteXmageRight";
1527 
1528 /**
1529  * @brief Xmage Y2 Coordinate
1530  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1531  *
1532  * @since 12
1533  */
1534 static const char *OHOS_IMAGE_PROPERTY_XMAGE_BOTTOM = "HwMnoteXmageBottom";
1535 
1536 /**
1537  * @brief Cloud Enhancement Mode
1538  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1539  *
1540  * @since 12
1541  */
1542 static const char *OHOS_IMAGE_PROPERTY_CLOUD_ENHANCEMENT_MODE = "HwMnoteCloudEnhancementMode";
1543 
1544 /**
1545  * @brief Wind Snapshot Mode
1546  * It is used in {@link OH_ImageSource_GetImageProperty} and {@link OH_ImageSource_ModifyImageProperty}.
1547  *
1548  * @since 12
1549  */
1550 static const char *OHOS_IMAGE_PROPERTY_WIND_SNAPSHOT_MODE = "HwMnoteWindSnapshotMode";
1551 
1552 
1553 /**
1554  * @brief Gif Loop Count
1555  * It is used in {@link OH_ImageSource_GetImageProperty}.
1556  * If infinite loop returns 0, other values represent the number of loops
1557  *
1558  * @since 12
1559  */
1560 static const char *OHOS_IMAGE_PROPERTY_GIF_LOOP_COUNT = "GIFLoopCount";
1561 
1562 /**
1563  * @brief X in original
1564  * It is used in {@link OH_ImageSource_GetImageProperty}.
1565  * The top left corner of the fragment image is at the X-coordinate of the original image
1566  *
1567  * @since 13
1568  */
1569 static const char *OHOS_IMAGE_PROPERTY_X_IN_ORIGINAL = "XInOriginal";
1570 
1571 /**
1572  * @brief Y in original
1573  * It is used in {@link OH_ImageSource_GetImageProperty}.
1574  * The top left corner of the fragment image is at the Y-coordinate of the original image
1575  *
1576  * @since 13
1577  */
1578 static const char *OHOS_IMAGE_PROPERTY_Y_IN_ORIGINAL = "YInOriginal";
1579 
1580 /**
1581  * @brief Fragment map width
1582  * It is used in {@link OH_ImageSource_GetImageProperty}.
1583  * The width of the fragment image
1584  *
1585  * @since 13
1586  */
1587 static const char *OHOS_IMAGE_PROPERTY_FRAGMENT_WIDTH = "FragmentImageWidth";
1588 
1589 /**
1590  * @brief Fragment map height
1591  * It is used in {@link OH_ImageSource_GetImageProperty}.
1592  * The height of the fragment image
1593  *
1594  * @since 13
1595  */
1596 static const char *OHOS_IMAGE_PROPERTY_FRAGMENT_HEIGHT = "FragmentImageHeight";
1597 
1598 /**
1599  * @brief Delay time of each frame in a GIF image in milliseconds.
1600  *
1601  * @since 20
1602  */
1603 static const char *IMAGE_PROPERTY_GIF_DELAY_TIME = "GifDelayTime";
1604 
1605 /**
1606  * @brief Disposal type of each frame in gif.
1607  *
1608  * @since 20
1609  */
1610 static const char *IMAGE_PROPERTY_GIF_DISPOSAL_TYPE = "GifDisposalType";
1611 #ifdef __cplusplus
1612 };
1613 #endif
1614 /** @} */
1615 
1616 #endif // INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_IMAGE_COMMON_H_