diff --git a/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.cpp b/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.cpp index 736eace1be8a87ad3b81906376e0cef701075e53..310bae70299df51129331abaae3e9d80d00df78b 100644 --- a/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.cpp +++ b/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.cpp @@ -63,6 +63,24 @@ int processImage(OH_PixelmapNative *src, OH_PixelmapNative *dst) if (ret != IMAGE_PROCESSING_SUCCESS) { OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "OH_ImageProcessing_Create err"); } + // [Start processImageSupported] + // Input format. + ImageProcessing_ColorSpaceInfo SRC_INFO; + ImageProcessing_ColorSpaceInfo DST_GAIN_INFO; + ImageProcessing_ColorSpaceInfo DST_INFO; + SRC_INFO.colorSpace = DISPLAY_P3; + SRC_INFO.metadataType = HDR_METADATA_TYPE_NONE; + SRC_INFO.pixelFormat = PIXEL_FORMAT_RGBA_8888; + DST_INFO.colorSpace = SRGB; + DST_INFO.metadataType = HDR_METADATA_TYPE_NONE; + DST_INFO.pixelFormat = PIXEL_FORMAT_RGBA_8888; + // Ability inquiry. + bool flag = OH_ImageProcessing_IsColorSpaceConversionSupported(&SRC_INFO, &DST_INFO); + // [End processImageSupported] + if (!flag) { + OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "not supported err"); + return -1; + } // [Start processImageCreate] OH_ImageProcessing *instance = nullptr; ret = OH_ImageProcessing_Create(&instance, IMAGE_PROCESSING_TYPE_COLOR_SPACE_CONVERSION); @@ -142,6 +160,29 @@ napi_value ImageProcessing::HdrCompose(napi_env env, napi_callback_info info) if (ret != IMAGE_PROCESSING_SUCCESS) { OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "OH_ImageProcessing_Create err"); } + // [Start HdrComposeSupported] + // Input format. + ImageProcessing_ColorSpaceInfo DST_INFO; + ImageProcessing_ColorSpaceInfo SRC_INFO; + ImageProcessing_ColorSpaceInfo SRC_GAIN_INFO; + DST_INFO.colorSpace = BT2020_HLG; + DST_INFO.metadataType = HDR_METADATA_TYPE_ALTERNATE; + DST_INFO.pixelFormat = PIXEL_FORMAT_RGBA_1010102; + SRC_INFO.colorSpace = DCI_P3; + SRC_INFO.metadataType = HDR_METADATA_TYPE_BASE; + SRC_INFO.pixelFormat = PIXEL_FORMAT_RGBA_8888; + SRC_GAIN_INFO.colorSpace = DCI_P3; + SRC_GAIN_INFO.metadataType = HDR_METADATA_TYPE_GAINMAP; + SRC_GAIN_INFO.pixelFormat = PIXEL_FORMAT_RGBA_8888; + // Ability inquiry. + bool flag = OH_ImageProcessing_IsCompositionSupported(&SRC_INFO, &SRC_GAIN_INFO, &DST_INFO); + if (!flag) { + OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "not support err"); + napi_value retValErr; + napi_create_int32(env, -1, &retValErr); + return retValErr; + } + // [End HdrComposeSupported] // [Start HdrComposeCreate] OH_ImageProcessing *instance = nullptr; ret = OH_ImageProcessing_Create(&instance, IMAGE_PROCESSING_TYPE_COMPOSITION); @@ -197,6 +238,29 @@ napi_value ImageProcessing::HdrDecompose(napi_env env, napi_callback_info info) OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "OH_ImageProcessing_InitializeEnvironment err"); } + // [Start HdrDecomposeSupported] + // Input format. + ImageProcessing_ColorSpaceInfo SRC_INFO; + ImageProcessing_ColorSpaceInfo DST_GAIN_INFO; + ImageProcessing_ColorSpaceInfo DST_INFO; + SRC_INFO.colorSpace = BT2020_HLG; + SRC_INFO.metadataType = HDR_METADATA_TYPE_ALTERNATE; + SRC_INFO.pixelFormat = PIXEL_FORMAT_RGBA_1010102; + DST_INFO.colorSpace = DISPLAY_P3; + DST_INFO.metadataType = HDR_METADATA_TYPE_BASE; + DST_INFO.pixelFormat = PIXEL_FORMAT_RGBA_8888; + DST_GAIN_INFO.colorSpace = DISPLAY_P3; + DST_GAIN_INFO.metadataType = HDR_METADATA_TYPE_GAINMAP; + DST_GAIN_INFO.pixelFormat = PIXEL_FORMAT_RGBA_8888; + // Ability inquiry. + bool flag = OH_ImageProcessing_IsDecompositionSupported(&SRC_INFO, &DST_INFO, &DST_GAIN_INFO); + // [End HdrDecomposeSupported] + if (!flag) { + OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "not supported err"); + napi_value retValErr; + napi_create_int32(env, -1, &retValErr); + return retValErr; + } // [Start HdrDecomposeCreate] OH_ImageProcessing *instance = nullptr; ret = OH_ImageProcessing_Create(&instance, IMAGE_PROCESSING_TYPE_DECOMPOSITION); @@ -265,6 +329,21 @@ napi_value ImageProcessing::GenerateMetadata(napi_env env, napi_callback_info in OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "OH_ImageProcessing_InitializeEnvironment err"); } + // [Start GenerateMetadataSupported] + // Input format. + ImageProcessing_ColorSpaceInfo SRC_INFO; + SRC_INFO.colorSpace = BT2020_HLG; + SRC_INFO.metadataType = HDR_METADATA_TYPE_ALTERNATE; + SRC_INFO.pixelFormat = PIXEL_FORMAT_RGBA_1010102; + // Ability inquiry. + bool flag = OH_ImageProcessing_IsMetadataGenerationSupported(&SRC_INFO); + // [End GenerateMetadataSupported] + if (!flag) { + OH_LOG_Print(LOG_APP, LOG_ERROR, LOG_PRINT_DOMAIN, "NativePixelMap", "not supported err"); + napi_value retValErr; + napi_create_int32(env, -1, &retValErr); + return retValErr; + } // [Start GenerateMetadataCreate] OH_ImageProcessing *instance = nullptr; ret1 = OH_ImageProcessing_Create(&instance, IMAGE_PROCESSING_TYPE_METADATA_GENERATION); diff --git a/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.h b/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.h index 7eff6a2fbd70bdb41fa4db3519b7e0bc9baed042..57dd73dfff709ef5a9f5668f0d49df8e7c186062 100644 --- a/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.h +++ b/UsingImageProcessingToProcessImages/entry/src/main/cpp/ImageProcessing/ImageProcessing.h @@ -17,6 +17,7 @@ #define USINGIMAGEPROCESSINGTOPROCESSIMAGES_IMAGEPROCESSING_H // [Start import] +// [Start MetadataImport] #include #include #include @@ -25,10 +26,12 @@ #include #include // [End import] +#include +#include +// [End MetadataImport] #include #include #include -#include #include #include #include