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