1 /* 2 * Copyright (C) 2022 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 obtaining pixel map data and information. 21 * 22 * @Syscap SystemCapability.Multimedia.Image 23 * @since 10 24 * @version 1.0 25 */ 26 27 /** 28 * @file image_pixel_map_mdk.h 29 * 30 * @brief Declares the APIs that can lock, access, and unlock a pixel map. 31 * Need link <b>libpixelmapndk.z.so</b> 32 * 33 * @since 10 34 * @version 1.0 35 */ 36 37 #ifndef INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_PIXEL_MAP_MDK_H_ 38 #define INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_PIXEL_MAP_MDK_H_ 39 #include <stdint.h> 40 #include "napi/native_api.h" 41 #include "image_mdk_common.h" 42 43 #ifdef __cplusplus 44 extern "C" { 45 #endif 46 47 /** 48 * @brief Defines the native pixel map information. 49 * @since 10 50 * @version 1.0 51 */ 52 struct NativePixelMap_; 53 54 /** 55 * @brief Defines the data type name of the native pixel map. 56 * @since 10 57 * @version 1.0 58 */ 59 typedef struct NativePixelMap_ NativePixelMap; 60 61 /** 62 * @brief Defines the pixel map information. 63 * 64 * @since 10 65 * @version 1.0 66 */ 67 typedef struct OhosPixelMapInfos { 68 /** Image width, in pixels. */ 69 uint32_t width; 70 /** Image height, in pixels. */ 71 uint32_t height; 72 /** Number of bytes per row. */ 73 uint32_t rowSize; 74 /** Pixel format. */ 75 int32_t pixelFormat; 76 } OhosPixelMapInfos; 77 78 /** 79 * @brief Enumerates the pixel map alpha types. 80 * 81 * @since 10 82 * @version 1.0 83 */ 84 enum { 85 /** 86 * Unknown format. 87 */ 88 OHOS_PIXEL_MAP_ALPHA_TYPE_UNKNOWN = 0, 89 /** 90 * Opaque format. 91 */ 92 OHOS_PIXEL_MAP_ALPHA_TYPE_OPAQUE = 1, 93 /** 94 * Premultiplied format. 95 */ 96 OHOS_PIXEL_MAP_ALPHA_TYPE_PREMUL = 2, 97 /** 98 * Unpremultiplied format. 99 */ 100 OHOS_PIXEL_MAP_ALPHA_TYPE_UNPREMUL = 3 101 }; 102 103 /** 104 * @brief Enumerates the pixel map editing types. 105 * 106 * @since 10 107 * @version 1.0 108 */ 109 enum { 110 /** 111 * Read-only. 112 */ 113 OHOS_PIXEL_MAP_READ_ONLY = 0, 114 /** 115 * Editable. 116 */ 117 OHOS_PIXEL_MAP_EDITABLE = 1, 118 }; 119 120 /** 121 * @brief Defines the options used for creating a pixel map. 122 * 123 * @since 10 124 * @version 1.0 125 */ 126 struct OhosPixelMapCreateOps { 127 /** Image width, in pixels. */ 128 uint32_t width; 129 /** Image height, in pixels. */ 130 uint32_t height; 131 /** Image format. */ 132 int32_t pixelFormat; 133 /** Editing type of the image. */ 134 uint32_t editable; 135 /** Alpha type of the image. */ 136 uint32_t alphaType; 137 /** Scale mode of the image. */ 138 uint32_t scaleMode; 139 }; 140 141 /** 142 * @brief Creates a <b>PixelMap</b> object. 143 * 144 * @param env Indicates the NAPI environment pointer. 145 * @param info Indicates the options for setting the <b>PixelMap</b> object. 146 * @param buf Indicates the pointer to the buffer of the image. 147 * @param len Indicates the image size. 148 * @param res Indicates the pointer to the <b>PixelMap</b> object at the application layer. 149 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 150 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 151 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 152 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 153 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 154 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 155 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_HEAD_ABNORMAL - if image decode head error. 156 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_DECODER_FAILED - if create decoder failed. 157 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_ENCODER_FAILED - if create encoder failed. 158 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 159 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 160 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 161 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 162 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 163 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_ABNORMAL - if image decode error. 164 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 165 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 166 * returns {@link IRNdkErrCode} IMAGE_RESULT_INIT_ABNORMAL - if image input data error. 167 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 168 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 169 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 170 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 171 * returns {@link IRNdkErrCode} IMAGE_RESULT_ENCODE_FAILED - if image add pixel map fail. 172 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_UNSUPPORT - if image hardware decode unsupported. 173 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_FAILED - if hard decode failed. 174 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_IPC - if ipc error. 175 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 176 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 177 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 178 * @see CreatePixelMap 179 * @since 10 180 * @version 1.0 181 */ 182 int32_t OH_PixelMap_CreatePixelMap(napi_env env, OhosPixelMapCreateOps info, 183 void* buf, size_t len, napi_value* res); 184 185 /** 186 * @brief Creates a <b>PixelMap</b> object that contains only alpha channel information. 187 * 188 * @param env Indicates the NAPI environment pointer. 189 * @param source Indicates the options for setting the <b>PixelMap</b> object. 190 * @param alpha Indicates the pointer to the alpha channel. 191 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 192 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 193 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 194 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 195 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 196 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 197 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_HEAD_ABNORMAL - if image decode head error. 198 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_DECODER_FAILED - if create decoder failed. 199 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_ENCODER_FAILED - if create encoder failed. 200 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 201 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 202 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 203 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 204 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 205 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_ABNORMAL - if image decode error. 206 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 207 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 208 * returns {@link IRNdkErrCode} IMAGE_RESULT_INIT_ABNORMAL - if image input data error. 209 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 210 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 211 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 212 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 213 * returns {@link IRNdkErrCode} IMAGE_RESULT_ENCODE_FAILED - if image add pixel map fail. 214 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_UNSUPPORT - if image hardware decode unsupported. 215 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_FAILED - if hard decode failed. 216 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_IPC - if ipc error. 217 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 218 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 219 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 220 * @see CreateAlphaPixelMap 221 * @since 10 222 * @version 1.0 223 */ 224 int32_t OH_PixelMap_CreateAlphaPixelMap(napi_env env, napi_value source, napi_value* alpha); 225 226 /** 227 * @brief Initializes a <b>PixelMap</b> object. 228 * 229 * @param env Indicates the NAPI environment pointer. 230 * @param source Indicates the options for setting the <b>PixelMap</b> object. 231 * @return Returns a pointer to the <b>NativePixelMap</b> object 232 * if the operation is successful; returns nullptr otherwise. 233 * @see InitNativePixelMap 234 * @since 10 235 * @version 1.0 236 */ 237 NativePixelMap* OH_PixelMap_InitNativePixelMap(napi_env env, napi_value source); 238 239 /** 240 * @brief Obtains the number of bytes per row of a <b>PixelMap</b> object. 241 * 242 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 243 * @param num Indicates the pointer to the number of bytes per row of the <b>PixelMap</b> object. 244 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 245 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 246 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 247 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 248 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 249 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 250 * @see GetBytesNumberPerRow 251 * @since 10 252 * @version 1.0 253 */ 254 int32_t OH_PixelMap_GetBytesNumberPerRow(const NativePixelMap* native, int32_t* num); 255 256 /** 257 * @brief Checks whether a <b>PixelMap</b> object is editable. 258 * 259 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 260 * @param editable Indicates the pointer to the editing type of the <b>PixelMap</b> object. 261 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 262 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 263 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 264 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 265 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 266 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 267 * @see GetIsEditable 268 * @since 10 269 * @version 1.0 270 */ 271 int32_t OH_PixelMap_GetIsEditable(const NativePixelMap* native, int32_t* editable); 272 273 /** 274 * @brief Checks whether a <b>PixelMap</b> object supports alpha channels. 275 * 276 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 277 * @param alpha Indicates the pointer to the support for alpha channels. 278 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 279 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 280 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 281 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 282 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 283 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 284 * @see IsSupportAlpha 285 * @since 10 286 * @version 1.0 287 */ 288 int32_t OH_PixelMap_IsSupportAlpha(const NativePixelMap* native, int32_t* alpha); 289 290 /** 291 * @brief Sets an alpha channel for a <b>PixelMap</b> object. 292 * 293 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 294 * @param alpha Indicates the alpha channel to set. 295 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 296 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 297 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 298 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 299 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 300 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 301 * @see SetAlphaAble 302 * @since 10 303 * @version 1.0 304 */ 305 int32_t OH_PixelMap_SetAlphaAble(const NativePixelMap* native, int32_t alpha); 306 307 /** 308 * @brief Obtains the pixel density of a <b>PixelMap</b> object. 309 * 310 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 311 * @param density Indicates the pointer to the pixel density. 312 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 313 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 314 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 315 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 316 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 317 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 318 * @see GetDensity 319 * @since 10 320 * @version 1.0 321 */ 322 int32_t OH_PixelMap_GetDensity(const NativePixelMap* native, int32_t* density); 323 324 /** 325 * @brief Sets the pixel density for a <b>PixelMap</b> object. 326 * 327 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 328 * @param density Indicates the pixel density to set. 329 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 330 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 331 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 332 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 333 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 334 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 335 * @see GetDensity 336 * @since 10 337 * @version 1.0 338 */ 339 int32_t OH_PixelMap_SetDensity(const NativePixelMap* native, int32_t density); 340 341 /** 342 * @brief Sets the opacity for a <b>PixelMap</b> object. 343 * 344 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 345 * @param opacity Indicates the opacity to set. 346 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 347 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 348 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 349 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 350 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 351 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 352 * @see SetOpacity 353 * @since 10 354 * @version 1.0 355 */ 356 int32_t OH_PixelMap_SetOpacity(const NativePixelMap* native, float opacity); 357 358 /** 359 * @brief Scales a <b>PixelMap</b> object. 360 * 361 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 362 * @param x Indicates the scaling ratio of the width. 363 * @param y Indicates the scaling ratio of the height. 364 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 365 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 366 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 367 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 368 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 369 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 370 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 371 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 372 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 373 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 374 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 375 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 376 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 377 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 378 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 379 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 380 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 381 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 382 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 383 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 384 * @see Scale 385 * @since 10 386 * @version 1.0 387 */ 388 int32_t OH_PixelMap_Scale(const NativePixelMap* native, float x, float y); 389 390 /** 391 * @brief Translates a <b>PixelMap</b> object. 392 * 393 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 394 * @param x Indicates the horizontal distance to translate. 395 * @param y Indicates the vertical distance to translate. 396 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 397 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 398 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 399 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 400 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 401 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 402 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 403 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 404 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 405 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 406 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 407 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 408 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 409 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 410 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 411 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 412 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 413 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 414 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 415 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 416 * @see Translate 417 * @since 10 418 * @version 1.0 419 */ 420 int32_t OH_PixelMap_Translate(const NativePixelMap* native, float x, float y); 421 422 /** 423 * @brief Rotates a <b>PixelMap</b> object. 424 * 425 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 426 * @param angle Indicates the angle to rotate. 427 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 428 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 429 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 430 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 431 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 432 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 433 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 434 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 435 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 436 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 437 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 438 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 439 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 440 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 441 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 442 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 443 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 444 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 445 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 446 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 447 * @see Rotate 448 * @since 10 449 * @version 1.0 450 */ 451 int32_t OH_PixelMap_Rotate(const NativePixelMap* native, float angle); 452 453 /** 454 * @brief Flips a <b>PixelMap</b> object. 455 * 456 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 457 * @param x Specifies whether to flip around the x axis. 458 * @param y Specifies whether to flip around the y axis. 459 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 460 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 461 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 462 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 463 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 464 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 465 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 466 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 467 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 468 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 469 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 470 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 471 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 472 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 473 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 474 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 475 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 476 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 477 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 478 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 479 * @see Flip 480 * @since 10 481 * @version 1.0 482 */ 483 int32_t OH_PixelMap_Flip(const NativePixelMap* native, int32_t x, int32_t y); 484 485 /** 486 * @brief Crops a <b>PixelMap</b> object. 487 * 488 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 489 * @param x Indicates the x-coordinate of the upper left corner of the target image. 490 * @param y Indicates the y-coordinate of the upper left corner of the target image. 491 * @param width Indicates the width of the cropped region. 492 * @param height Indicates the height of the cropped region. 493 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 494 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 495 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 496 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 497 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 498 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 499 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 500 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 501 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 502 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 503 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 504 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 505 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 506 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 507 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 508 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 509 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 510 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 511 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 512 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 513 * @see Crop 514 * @since 10 515 * @version 1.0 516 */ 517 int32_t OH_PixelMap_Crop(const NativePixelMap* native, int32_t x, int32_t y, int32_t width, int32_t height); 518 519 /** 520 * @brief Obtains the image information of a <b>PixelMap</b> object. 521 * 522 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 523 * @param info Indicates the pointer to the image information. 524 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 525 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 526 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 527 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 528 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 529 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 530 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 531 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 532 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 533 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 534 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 535 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 536 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 537 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 538 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 539 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 540 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 541 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 542 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 543 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 544 * @see OhosPixelMapInfos 545 * @since 10 546 * @version 2.0 547 */ 548 int32_t OH_PixelMap_GetImageInfo(const NativePixelMap* native, OhosPixelMapInfos *info); 549 550 /** 551 * @brief Obtains the memory address of a <b>NativePixelMap</b> object and locks the memory. 552 * 553 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 554 * @param addr Indicates the double pointer to the memory address. 555 * @see UnAccessPixels 556 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 557 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 558 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 559 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 560 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 561 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 562 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 563 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 564 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 565 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 566 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 567 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 568 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 569 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 570 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 571 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 572 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 573 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 574 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 575 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 576 * @since 10 577 * @version 2.0 578 */ 579 int32_t OH_PixelMap_AccessPixels(const NativePixelMap* native, void** addr); 580 581 /** 582 * @brief Unlocks the memory of the <b>NativePixelMap</b> object data. 583 * This function is used with {@link OH_PixelMap_AccessPixels} in pairs. 584 * 585 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 586 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 587 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 588 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 589 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 590 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 591 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 592 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 593 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 594 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 595 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 596 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 597 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 598 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 599 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 600 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 601 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 602 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 603 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 604 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 605 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 606 * @see AccessPixels 607 * @since 10 608 * @version 2.0 609 */ 610 int32_t OH_PixelMap_UnAccessPixels(const NativePixelMap* native); 611 612 #ifdef __cplusplus 613 }; 614 #endif 615 /** @} */ 616 617 #endif // INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_PIXEL_MAP_NAPI_H_ 618