diff --git a/multimedia/image_framework/BUILD.gn b/multimedia/image_framework/BUILD.gn
index 22c7d1fb908ed19139950abfb1de3f76419652bf..1f0b1b64a204610063a19343de6e784011dfc076 100644
--- a/multimedia/image_framework/BUILD.gn
+++ b/multimedia/image_framework/BUILD.gn
@@ -72,3 +72,25 @@ ohos_ndk_headers("image_packer_ndk_header") {
dest_dir = "$ndk_headers_out_dir/multimedia/image_framework"
sources = [ "./include/image_packer_mdk.h" ]
}
+
+ohos_ndk_library("libimage2") {
+ ndk_description_file = "./libimage2.ndk.json"
+ min_compact_version = "12"
+ output_name = "image2"
+}
+
+ohos_ndk_headers("image2_header") {
+ dest_dir = "$ndk_headers_out_dir/multimedia/image_framework/image"
+ sources = [ "./include/image/image2.h" ]
+}
+
+ohos_ndk_library("libimageReceiver2") {
+ ndk_description_file = "./libimageReceiver2.ndk.json"
+ min_compact_version = "12"
+ output_name = "imageReceiver2"
+}
+
+ohos_ndk_headers("imageReceiver2_header") {
+ dest_dir = "$ndk_headers_out_dir/multimedia/image_framework/image"
+ sources = [ "./include/image/imageReceiver2.h" ]
+}
diff --git a/multimedia/image_framework/include/image/image2.h b/multimedia/image_framework/include/image/image2.h
new file mode 100644
index 0000000000000000000000000000000000000000..40e70ed8c18ced1fad6281b820facff4a40c1c0a
--- /dev/null
+++ b/multimedia/image_framework/include/image/image2.h
@@ -0,0 +1,312 @@
+/*
+ * Copyright (C) 2024 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @addtogroup image
+ * @{
+ *
+ * @brief Provides APIs for access to the image interface.
+ *
+ * @Syscap SystemCapability.Multimedia.Image
+ * @since 12
+ * @version 5.0
+ */
+
+/**
+ * @file image2.h
+ *
+ * @brief Declares functions that access the image rectangle, size, format, and component data.
+ * Need link libimage_native.z.so
+ *
+ * @since 12
+ * @version 5.0
+ */
+
+#ifndef INTERFACES_KITS_NATIVE_INCLUDE_IMAGE2_H
+#define INTERFACES_KITS_NATIVE_INCLUDE_IMAGE2_H
+
+#include "image_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Defines an OH_Image2 object at the native layer.
+ *
+ * @since 12
+ * @version 5.0
+ */
+struct OH_Image2;
+
+/**
+ * @brief Defines the data type name of a native image.
+ *
+ * @since 12
+ * @version 5.0
+ */
+typedef struct OH_Image2 OH_Image2;
+
+/**
+ * @brief Defines the image component object at the native layer.
+ *
+ * @since 12
+ * @version 5.0
+ */
+struct OH_Image2_Component;
+
+/**
+ * @brief Defines the data type name of a native image component.
+ *
+ * @since 12
+ * @version 5.0
+ */
+typedef struct OH_Image2_Component OH_Image2_Component;
+
+/**
+ * @brief Creates an empty OH_Image2_Component object at the application layer.
+ *
+ * @param component Indicates the pointer to the OH_Image2_Component object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MALLOC_ABNORMAL - if malloc failed.
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_CreateComponent(OH_Image2_Component** component);
+
+/**
+ * @brief Set byteBuffer of an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param buffer Indicates the value of the {@link OH_Image2_Component} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_SetByteBuffer(OH_Image2_Component* component, uint8_t* buffer);
+
+/**
+ * @brief Get byteBuffer from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param buffer Indicates the pointer to the {@link OH_Image2_Component} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_GetByteBuffer(const OH_Image2_Component* component, uint8_t** buffer);
+
+/**
+ * @brief Set size from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param size Indicates the value of the {@link OH_Image2_Component} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_SetSize(OH_Image2_Component* component, size_t size);
+
+/**
+ * @brief Get size from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param size Indicates the pointer to the {@link OH_Image2_Component} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_GetSize(const OH_Image2_Component* component, size_t* size);
+
+/**
+ * @brief Set type from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param type Indicates the value of the {@link OH_Image2_Component} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_SetComponentType(OH_Image2_Component* component, int32_t type);
+
+/**
+ * @brief Get type from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param type Indicates the pointer to the {@link OH_Image2_Component} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_GetComponentType(const OH_Image2_Component* component, int32_t* type);
+
+/**
+ * @brief Set row stride from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param rowStride Indicates the value of the {@link OH_Image2_Component} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_SetRowStride(OH_Image2_Component* component, int32_t rowStride);
+
+/**
+ * @brief Get row stride from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param rowStride Indicates the pointer to the {@link OH_Image2_Component} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_GetRowStride(const OH_Image2_Component* component, int32_t* rowStride);
+
+/**
+ * @brief Set pixel stride from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param pixelStride Indicates the value of the {@link OH_Image2_Component} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_SetPixelStride(OH_Image2_Component* component, int32_t pixelStride);
+
+/**
+ * @brief Get pixel stride from an {@link OH_Image2_Component} object at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @param pixelStride Indicates the pointer to the {@link OH_Image2_Component} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_GetPixelStride(const OH_Image2_Component* component, int32_t* pixelStride);
+
+/**
+ * @brief Releases an {@link OH_Image2_Component} object at the native layer.
+ * It is used to release the object {@link OH_Image2_Component} at the native layer.
+ *
+ * @param component Indicates the pointer to an {@link OH_Image2_Component} object at the native layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2_Component
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_ReleaseComponent(OH_Image2_Component* component);
+
+/**
+ * @brief Obtains {@link OH_Image_Region} of an {@link OH_Image2} at the native layer.
+ *
+ * @param image Indicates the pointer to an {@link OH_Image2} object at the native layer.
+ * @param rect Indicates the pointer to the {@link OH_Image_Region} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MEDIA_DEAD_OBJECT - if media object dead.
+ * @see OH_Image2, OH_Image_Region
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_ClipRect(const OH_Image2* image, struct OH_Image_Region* rect);
+
+/**
+ * @brief Obtains {@link OH_Image_Size} of an {@link OH_Image2} object at the native layer.
+ *
+ * @param image Indicates the pointer to an {@link OH_Image2} object at the native layer.
+ * @param size Indicates the pointer to the {@link OH_Image_Size} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MEDIA_DEAD_OBJECT - if media object dead.
+ * @see OH_Image2, OH_Image_Size
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_Size(const OH_Image2* image, struct OH_Image_Size* size);
+
+/**
+ * @brief Obtains the image format of an {@link OH_Image2} object at the native layer.
+ *
+ * @param image Indicates the pointer to an {@link OH_Image2} object at the native layer.
+ * @param format Indicates the pointer to the image format obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MEDIA_DEAD_OBJECT - if media object dead.
+ * @see OH_Image2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_Format(const OH_Image2* image, int32_t* format);
+
+/**
+ * @brief Obtains {@link OhosImageComponent} of an {@link OH_Image2} object at the native layer.
+ *
+ * @param image Indicates the pointer to an {@link OH_Image2} object at the native layer.
+ * @param componentType Indicates the type of the required component.
+ * @param component Indicates the pointer to the {@link OH_Image2_Component} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_GET_PARAMETER_FAILED - if Failed to obtain parameters.
+ * @see OH_Image2, OhosImageComponent
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_GetComponent(const OH_Image2* image,
+ int32_t componentType, OH_Image2_Component** component);
+
+/**
+ * @brief Releases an {@link OH_Image2} object at the native layer.
+ * It is used to release the object {@link OH_Image2} at the native layer.
+ *
+ * @param image Indicates the pointer to an {@link OH_Image2} object at the native layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_Image2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_Image2_Release(OH_Image2* image);
+
+#ifdef __cplusplus
+};
+#endif
+/** @} */
+#endif // INTERFACES_KITS_NATIVE_INCLUDE_IMAGE2_H
diff --git a/multimedia/image_framework/include/image/imageReceiver2.h b/multimedia/image_framework/include/image/imageReceiver2.h
new file mode 100644
index 0000000000000000000000000000000000000000..6728385359f53716205fe7cca4195dc615555823
--- /dev/null
+++ b/multimedia/image_framework/include/image/imageReceiver2.h
@@ -0,0 +1,407 @@
+/*
+ * Copyright (C) 2024 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @addtogroup image
+ * @{
+ *
+ * @brief Provides APIs for obtaining image data from the native layer.
+ *
+ * @Syscap SystemCapability.Multimedia.Image
+ * @since 12
+ * @version 5.0
+ */
+
+/**
+ * @file imageReceiver2.h
+ *
+ * @brief Declares the APIs for obtaining image data from the native layer.
+ * Need link libimage_native.z.so and libimage2.z.so
+ * @since 12
+ * @version 5.0
+ */
+
+#ifndef INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_RECEIVER2_H
+#define INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_RECEIVER2_H
+
+#include "image2.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Defines an OH_ImageReceiver2 object at the native layer.
+ *
+ * @since 12
+ * @version 5.0
+ */
+struct OH_ImageReceiver2;
+
+/**
+ * @brief Defines the data type name of a native image receiver.
+ *
+ * @since 12
+ * @version 5.0
+ */
+typedef struct OH_ImageReceiver2 OH_ImageReceiver2;
+
+/**
+ * @brief Defines an image receiver info object at the native layer.
+ *
+ * @since 12
+ * @version 5.0
+ */
+struct OH_ImageReceiver2_Info;
+
+/**
+ * @brief Defines the data type name of a native image receiver info.
+ *
+ * @since 12
+ * @version 5.0
+ */
+typedef struct OH_ImageReceiver2_Info OH_ImageReceiver2_Info;
+
+/**
+ * @brief Defines the callbacks for images at the native layer.
+ *
+ * @since 12
+ * @version 5.0
+ */
+typedef void (*OH_Image_Receiver_On_Callback)(void);
+
+/**
+ * @brief Creates an OH_ImageReceiver2_Info object at the application layer.
+ *
+ * @param width Default width of the image received by the consumer, in pixels.
+ * @param height Default height of the image received by the consumer, in pixels.
+ * @param format Image format {@link OHOS_IMAGE_FORMAT_JPEG} created by using the receiver.
+ * @param capicity Maximum number of images that can be cached.
+ * @param info Indicates the pointer to the OH_ImageReceiver2_Info object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MALLOC_ABNORMAL - if malloc failed.
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_CreateInfo(
+ int32_t width, int32_t height, int32_t format, int32_t capicity,
+ OH_ImageReceiver2_Info** info);
+
+/**
+ * @brief Set width of an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param width Indicates the value of the {@link OH_ImageReceiver2_Info} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_SetInfoWidth(OH_ImageReceiver2_Info* info,
+ int32_t width);
+
+/**
+ * @brief Get width from an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param width Indicates the pointer to the {@link OH_ImageReceiver2_Info} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetInfoWidth(const OH_ImageReceiver2_Info* info,
+ int32_t* width);
+
+/**
+ * @brief Set height of an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param height Indicates the value of the {@link OH_ImageReceiver2_Info} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_SetInfoHeight(OH_ImageReceiver2_Info* info,
+ int32_t height);
+
+/**
+ * @brief Get height from an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param height Indicates the pointer to the {@link OH_ImageReceiver2_Info} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetInfoHeight(const OH_ImageReceiver2_Info* info,
+ int32_t* height);
+
+/**
+ * @brief Set format of an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param format Indicates the value of the {@link OH_ImageReceiver2_Info} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_SetInfoFormat(OH_ImageReceiver2_Info* info,
+ int32_t format);
+
+/**
+ * @brief Get format from an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param format Indicates the pointer to the {@link OH_ImageReceiver2_Info} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetInfoFormat(const OH_ImageReceiver2_Info* info,
+ int32_t* format);
+
+/**
+ * @brief Set capicity of an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param capicity Indicates the value of the {@link OH_ImageReceiver2_Info} object seted.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_SetInfoCapicity(OH_ImageReceiver2_Info* info,
+ int32_t capicity);
+
+/**
+ * @brief Get capicity from an {@link OH_ImageReceiver2_Info} object at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @param capicity Indicates the pointer to the {@link OH_ImageReceiver2_Info} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetInfoCapicity(const OH_ImageReceiver2_Info* info,
+ int32_t* capicity);
+
+/**
+ * @brief Releases an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * Note: This API is not used to release a JavaScript native API Image object.
+ * It is used to release the object {@link OH_ImageReceiver2_Info} at the native layer.
+ *
+ * @param info Indicates the pointer to an {@link OH_ImageReceiver2_Info} object at the native layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_ReleaseInfo(OH_ImageReceiver2_Info* info);
+
+/**
+ * @brief Creates an OH_ImageReceiver2 object at the application layer.
+ *
+ * @param info Indicates the options for setting the OH_ImageReceiver2 object.
+ * @param res Indicates the pointer to the OH_ImageReceiver2 object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MALLOC_ABNORMAL - if malloc failed.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if get data failed.
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_Create(struct OH_ImageReceiver2_Info* info,
+ OH_ImageReceiver2** res);
+
+/**
+ * @brief Obtains the receiver ID through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param id Indicates the pointer to the buffer that stores the ID string obtained.
+ * @param len Indicates the size of the buffer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if get data failed.
+ * @see OH_ImageReceiver2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetReceivingSurfaceId(const OH_ImageReceiver2* receiver,
+ char* id, size_t len);
+
+/**
+ * @brief Obtains the latest image through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param image Indicates the pointer to an OH_Image2 object at the application layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if get data failed.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MALLOC_ABNORMAL - if malloc failed.
+ * @see OH_ImageReceiver2, OH_Image2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_ReadLatestImage(const OH_ImageReceiver2* receiver,
+ OH_Image2** image);
+
+/**
+ * @brief Obtains the next image through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param image Indicates the pointer to an OH_Image2 object at the application layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if get data failed.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MALLOC_ABNORMAL - if malloc failed.
+ * @see OH_ImageReceiver2, OH_Image2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_ReadNextImage(const OH_ImageReceiver2* receiver,
+ OH_Image2** image);
+
+/**
+ * @brief Registers an {@link OH_Image_Receiver_On_Callback} callback event.
+ *
+ * This callback event is triggered whenever a new image is received.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param callback Indicates the {@link OH_Image_Receiver_On_Callback} callback event to register.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2, OH_Image_Receiver_On_Callback
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_On(const OH_ImageReceiver2* receiver,
+ OH_Image_Receiver_On_Callback callback);
+
+/**
+ * @brief Unregisters the {@link OH_Image_Receiver_On_Callback} callback event.
+ *
+ * This callback event is triggered whenever the image is shutdown.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2, OH_ImageReceiver2_On
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_Off(const OH_ImageReceiver2* receiver);
+
+/**
+ * @brief Obtains the info {@link OH_ImageReceiver2_Info} of the image receiver
+ * through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param infoNative Indicates the pointer to the {@link OH_ImageReceiver2_Info} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_MALLOC_ABNORMAL - if malloc failed.
+ * @see OH_ImageReceiver2, OH_ImageReceiver2_Info
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetInfo(const OH_ImageReceiver2* receiver,
+ OH_ImageReceiver2_Info** infoNative);
+
+/**
+ * @brief Obtains the size of the image receiver through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param size Indicates the pointer to the {@link OH_Image_Size} object obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2, OH_Image_Size
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetSize(const OH_ImageReceiver2* receiver,
+ struct OH_Image_Size* size);
+
+/**
+ * @brief Obtains the capacity of the image receiver through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param capacity Indicates the pointer to the capacity obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetCapacity(const OH_ImageReceiver2* receiver,
+ int32_t* capacity);
+
+/**
+ * @brief Obtains the format of the image receiver through an {@link OH_ImageReceiver2} object.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @param format Indicates the pointer to the format obtained.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_GetFormat(const OH_ImageReceiver2* receiver,
+ int32_t* format);
+
+/**
+ * @brief Releases an {@link OH_ImageReceiver2} object at the native layer.
+ *
+ * This API is not used to release an ImageReceiver2 object at the application layer.
+ *
+ * @param receiver Indicates the pointer to an {@link OH_ImageReceiver2} object at the native layer.
+ * @return Returns {@link OH_Image_ErrorCode} IMAGE_RESULT_SUCCESS - if the operation is successful.
+ * returns {@link OH_Image_ErrorCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter.
+ * @see OH_ImageReceiver2
+ * @since 12
+ * @version 5.0
+ */
+OH_Image_ErrorCode OH_ImageReceiver2_Release(OH_ImageReceiver2* receiver);
+
+#ifdef __cplusplus
+};
+#endif
+/** @} */
+
+#endif // INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_RECEIVER2_H
diff --git a/multimedia/image_framework/libimage2.ndk.json b/multimedia/image_framework/libimage2.ndk.json
new file mode 100644
index 0000000000000000000000000000000000000000..478f20439167a98c0165fbf6fa5f05ab969a7996
--- /dev/null
+++ b/multimedia/image_framework/libimage2.ndk.json
@@ -0,0 +1,54 @@
+[
+ {
+ "first_introduced": "12",
+ "name": "OH_Image2_CreateComponent"
+ },
+ {
+ "name": "OH_Image2_SetByteBuffer"
+ },
+ {
+ "name": "OH_Image2_GetByteBuffer"
+ },
+ {
+ "name": "OH_Image2_SetSize"
+ },
+ {
+ "name": "OH_Image2_GetSize"
+ },
+ {
+ "name": "OH_Image2_SetComponentType"
+ },
+ {
+ "name": "OH_Image2_GetComponentType"
+ },
+ {
+ "name": "OH_Image2_SetRowStride"
+ },
+ {
+ "name": "OH_Image2_GetRowStride"
+ },
+ {
+ "name": "OH_Image2_SetPixelStride"
+ },
+ {
+ "name": "OH_Image2_GetPixelStride"
+ },
+ {
+ "name": "OH_Image2_ReleaseComponent"
+ },
+ {
+ "name": "OH_Image2_ClipRect"
+ },
+ {
+ "name": "OH_Image2_Size"
+ },
+ {
+ "name": "OH_Image2_Format"
+ },
+ {
+ "name": "OH_Image2_GetComponent"
+ },
+ {
+ "name": "OH_Image2_Release"
+ }
+]
\ No newline at end of file
diff --git a/multimedia/image_framework/libimageReceiver2.ndk.json b/multimedia/image_framework/libimageReceiver2.ndk.json
new file mode 100644
index 0000000000000000000000000000000000000000..5c432af383218167fc65b3abe5aa21ef1afa8d1c
--- /dev/null
+++ b/multimedia/image_framework/libimageReceiver2.ndk.json
@@ -0,0 +1,66 @@
+[
+ {
+ "first_introduced": "12",
+ "name": "OH_ImageReceiver2_CreateInfo"
+ },
+ {
+ "name": "OH_ImageReceiver2_SetInfoWidth"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetInfoWidth"
+ },
+ {
+ "name": "OH_ImageReceiver2_SetInfoHeight"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetInfoHeight"
+ },
+ {
+ "name": "OH_ImageReceiver2_SetInfoFormat"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetInfoFormat"
+ },
+ {
+ "name": "OH_ImageReceiver2_SetInfoCapicity"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetInfoCapicity"
+ },
+ {
+ "name": "OH_ImageReceiver2_ReleaseInfo"
+ },
+ {
+ "name": "OH_ImageReceiver2_Create"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetReceivingSurfaceId"
+ },
+ {
+ "name": "OH_ImageReceiver2_ReadLatestImage"
+ },
+ {
+ "name": "OH_ImageReceiver2_ReadNextImage"
+ },
+ {
+ "name": "OH_ImageReceiver2_On"
+ },
+ {
+ "name": "OH_ImageReceiver2_Off"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetInfo"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetSize"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetCapacity"
+ },
+ {
+ "name": "OH_ImageReceiver2_GetFormat"
+ },
+ {
+ "name": "OH_ImageReceiver2_Release"
+ }
+]