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 Enumerates the anti-aliasing level. 122 * 123 * @since 12 124 * @version 1.0 125 */ 126 typedef enum { 127 /** 128 * Nearest-neighbor interpolation. 129 */ 130 OH_PixelMap_AntiAliasing_NONE = 0, 131 /** 132 * Bilinear interpolation, without mipmap linear filtering. 133 */ 134 OH_PixelMap_AntiAliasing_LOW = 1, 135 /** 136 * Bilinear interpolation, with mipmap linear filtering. 137 */ 138 OH_PixelMap_AntiAliasing_MEDIUM = 2, 139 /** 140 * Cubic interpolation. 141 */ 142 OH_PixelMap_AntiAliasing_HIGH = 3, 143 } OH_PixelMap_AntiAliasingLevel; 144 145 /** 146 * @brief Defines the options used for creating a pixel map. 147 * 148 * @since 10 149 * @version 1.0 150 */ 151 struct OhosPixelMapCreateOps { 152 /** Image width, in pixels. */ 153 uint32_t width; 154 /** Image height, in pixels. */ 155 uint32_t height; 156 /** Image format. */ 157 int32_t pixelFormat; 158 /** Editing type of the image. */ 159 uint32_t editable; 160 /** Alpha type of the image. */ 161 uint32_t alphaType; 162 /** Scale mode of the image. */ 163 uint32_t scaleMode; 164 }; 165 166 /** 167 * @brief Creates a <b>PixelMap</b> object. 168 * 169 * @param env Indicates the NAPI environment pointer. 170 * @param info Indicates the options for setting the <b>PixelMap</b> object. 171 * @param buf Indicates the pointer to the buffer of the image. 172 * @param len Indicates the image size. 173 * @param res Indicates the pointer to the <b>PixelMap</b> object at the application layer. 174 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 175 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 176 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 177 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 178 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 179 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 180 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_HEAD_ABNORMAL - if image decode head error. 181 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_DECODER_FAILED - if create decoder failed. 182 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_ENCODER_FAILED - if create encoder failed. 183 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 184 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 185 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 186 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 187 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 188 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_ABNORMAL - if image decode error. 189 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 190 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 191 * returns {@link IRNdkErrCode} IMAGE_RESULT_INIT_ABNORMAL - if image input data error. 192 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 193 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 194 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 195 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 196 * returns {@link IRNdkErrCode} IMAGE_RESULT_ENCODE_FAILED - if image add pixel map fail. 197 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_UNSUPPORT - if image hardware decode unsupported. 198 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_FAILED - if hard decode failed. 199 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_IPC - if ipc error. 200 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 201 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 202 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 203 * @see CreatePixelMap 204 * @since 10 205 * @version 1.0 206 */ 207 int32_t OH_PixelMap_CreatePixelMap(napi_env env, OhosPixelMapCreateOps info, 208 void* buf, size_t len, napi_value* res); 209 210 /** 211 * @brief Creates a <b>PixelMap</b> object with stride, whose memory is default as DMA. 212 * 213 * @param env Indicates the NAPI environment pointer. 214 * @param info Indicates the options for setting the <b>PixelMap</b> object. 215 * @param buf Indicates the pointer to the buffer of the image. 216 * @param len Indicates the image size. 217 * @param rowStride Indicates the stride of the image buffer. 218 * @param res Indicates the pointer to the <b>PixelMap</b> object at the application layer. 219 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 220 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if info, len and rowStride do not match. 221 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 222 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 223 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 224 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 225 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 226 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 227 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 228 * @see OH_PixelMap_CreatePixelMapWithStride 229 * @since 12 230 * @version 1.0 231 */ 232 int32_t OH_PixelMap_CreatePixelMapWithStride(napi_env env, OhosPixelMapCreateOps info, 233 void* buf, size_t len, int32_t rowStride, napi_value* res); 234 235 /** 236 * @brief Creates a <b>PixelMap</b> object that contains only alpha channel information. 237 * 238 * @param env Indicates the NAPI environment pointer. 239 * @param source Indicates the options for setting the <b>PixelMap</b> object. 240 * @param alpha Indicates the pointer to the alpha channel. 241 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 242 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 243 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 244 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 245 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 246 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 247 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_HEAD_ABNORMAL - if image decode head error. 248 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_DECODER_FAILED - if create decoder failed. 249 * returns {@link IRNdkErrCode} IMAGE_RESULT_CREATE_ENCODER_FAILED - if create encoder failed. 250 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 251 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 252 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 253 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 254 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 255 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_ABNORMAL - if image decode error. 256 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 257 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 258 * returns {@link IRNdkErrCode} IMAGE_RESULT_INIT_ABNORMAL - if image input data error. 259 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 260 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 261 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 262 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 263 * returns {@link IRNdkErrCode} IMAGE_RESULT_ENCODE_FAILED - if image add pixel map fail. 264 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_UNSUPPORT - if image hardware decode unsupported. 265 * returns {@link IRNdkErrCode} IMAGE_RESULT_HW_DECODE_FAILED - if hard decode failed. 266 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_IPC - if ipc error. 267 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 268 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 269 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 270 * @see CreateAlphaPixelMap 271 * @since 10 272 * @version 1.0 273 */ 274 int32_t OH_PixelMap_CreateAlphaPixelMap(napi_env env, napi_value source, napi_value* alpha); 275 276 /** 277 * @brief Initializes a <b>PixelMap</b> object. 278 * 279 * @param env Indicates the NAPI environment pointer. 280 * @param source Indicates the options for setting the <b>PixelMap</b> object. 281 * @return Returns a pointer to the <b>NativePixelMap</b> object 282 * if the operation is successful; returns nullptr otherwise. 283 * @see InitNativePixelMap 284 * @since 10 285 * @version 1.0 286 */ 287 NativePixelMap* OH_PixelMap_InitNativePixelMap(napi_env env, napi_value source); 288 289 /** 290 * @brief Obtains the number of bytes per row of a <b>PixelMap</b> object. 291 * 292 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 293 * @param num Indicates the pointer to the number of bytes per row of the <b>PixelMap</b> object. 294 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 295 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 296 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 297 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 298 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 299 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 300 * @see GetBytesNumberPerRow 301 * @since 10 302 * @version 1.0 303 */ 304 int32_t OH_PixelMap_GetBytesNumberPerRow(const NativePixelMap* native, int32_t* num); 305 306 /** 307 * @brief Checks whether a <b>PixelMap</b> object is editable. 308 * 309 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 310 * @param editable Indicates the pointer to the editing type of the <b>PixelMap</b> object. 311 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 312 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 313 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 314 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 315 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 316 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 317 * @see GetIsEditable 318 * @since 10 319 * @version 1.0 320 */ 321 int32_t OH_PixelMap_GetIsEditable(const NativePixelMap* native, int32_t* editable); 322 323 /** 324 * @brief Checks whether a <b>PixelMap</b> object supports alpha channels. 325 * 326 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 327 * @param alpha Indicates the pointer to the support for alpha channels. 328 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 329 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 330 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 331 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 332 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 333 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 334 * @see IsSupportAlpha 335 * @since 10 336 * @version 1.0 337 */ 338 int32_t OH_PixelMap_IsSupportAlpha(const NativePixelMap* native, int32_t* alpha); 339 340 /** 341 * @brief Sets an alpha channel for a <b>PixelMap</b> object. 342 * 343 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 344 * @param alpha Indicates the alpha channel to set. 345 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 346 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 347 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 348 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 349 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 350 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 351 * @see SetAlphaAble 352 * @since 10 353 * @version 1.0 354 */ 355 int32_t OH_PixelMap_SetAlphaAble(const NativePixelMap* native, int32_t alpha); 356 357 /** 358 * @brief Obtains the pixel density of a <b>PixelMap</b> object. 359 * 360 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 361 * @param density Indicates the pointer to the pixel density. 362 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 363 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 364 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 365 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 366 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 367 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 368 * @see GetDensity 369 * @since 10 370 * @version 1.0 371 */ 372 int32_t OH_PixelMap_GetDensity(const NativePixelMap* native, int32_t* density); 373 374 /** 375 * @brief Sets the pixel density for a <b>PixelMap</b> object. 376 * 377 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 378 * @param density Indicates the pixel density to set. 379 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 380 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 381 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 382 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 383 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 384 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 385 * @see GetDensity 386 * @since 10 387 * @version 1.0 388 */ 389 int32_t OH_PixelMap_SetDensity(const NativePixelMap* native, int32_t density); 390 391 /** 392 * @brief Sets the opacity for a <b>PixelMap</b> object. 393 * 394 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 395 * @param opacity Indicates the opacity to set. 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_DATA_ABNORMAL - if image input data error. 401 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 402 * @see SetOpacity 403 * @since 10 404 * @version 1.0 405 */ 406 int32_t OH_PixelMap_SetOpacity(const NativePixelMap* native, float opacity); 407 408 /** 409 * @brief Scales a <b>PixelMap</b> object. 410 * 411 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 412 * @param x Indicates the scaling ratio of the width. 413 * @param y Indicates the scaling ratio of the height. 414 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 415 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 416 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 417 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 418 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 419 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 420 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 421 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 422 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 423 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 424 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 425 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 426 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 427 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 428 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 429 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 430 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 431 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 432 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 433 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 434 * @see Scale 435 * @since 10 436 * @version 1.0 437 */ 438 int32_t OH_PixelMap_Scale(const NativePixelMap* native, float x, float y); 439 440 /** 441 * @brief Scales a <b>PixelMap</b> object with anti-aliasing. 442 * 443 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 444 * @param x Indicates the scaling ratio of the width. 445 * @param y Indicates the scaling ratio of the height. 446 * @param level Indicates the anti-aliasing algorithm to be used. 447 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 448 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 449 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter, x and y are incorrect. 450 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 451 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 452 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 453 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 454 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 455 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 456 * @see Scale 457 * @since 12 458 * @version 1.0 459 */ 460 int32_t OH_PixelMap_ScaleWithAntiAliasing(const NativePixelMap* native, float x, float y, 461 OH_PixelMap_AntiAliasingLevel level); 462 463 /** 464 * @brief Translates a <b>PixelMap</b> object. 465 * 466 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 467 * @param x Indicates the horizontal distance to translate. 468 * @param y Indicates the vertical distance to translate. 469 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 470 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 471 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 472 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 473 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 474 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 475 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 476 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 477 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 478 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 479 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 480 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 481 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 482 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 483 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 484 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 485 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 486 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 487 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 488 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 489 * @see Translate 490 * @since 10 491 * @version 1.0 492 */ 493 int32_t OH_PixelMap_Translate(const NativePixelMap* native, float x, float y); 494 495 /** 496 * @brief Rotates a <b>PixelMap</b> object. 497 * 498 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 499 * @param angle Indicates the angle to rotate. 500 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 501 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 502 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 503 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 504 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 505 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 506 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 507 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 508 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 509 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 510 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 511 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 512 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 513 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 514 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 515 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 516 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 517 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 518 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 519 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 520 * @see Rotate 521 * @since 10 522 * @version 1.0 523 */ 524 int32_t OH_PixelMap_Rotate(const NativePixelMap* native, float angle); 525 526 /** 527 * @brief Flips a <b>PixelMap</b> object. 528 * 529 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 530 * @param x Specifies whether to flip around the x axis. 531 * @param y Specifies whether to flip around the y axis. 532 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 533 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 534 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 535 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 536 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 537 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 538 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 539 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 540 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 541 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 542 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 543 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 544 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 545 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 546 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 547 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 548 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 549 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 550 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 551 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 552 * @see Flip 553 * @since 10 554 * @version 1.0 555 */ 556 int32_t OH_PixelMap_Flip(const NativePixelMap* native, int32_t x, int32_t y); 557 558 /** 559 * @brief Crops a <b>PixelMap</b> object. 560 * 561 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 562 * @param x Indicates the x-coordinate of the upper left corner of the target image. 563 * @param y Indicates the y-coordinate of the upper left corner of the target image. 564 * @param width Indicates the width of the cropped region. 565 * @param height Indicates the height of the cropped region. 566 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 567 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 568 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 569 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 570 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 571 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 572 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 573 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 574 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 575 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 576 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 577 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 578 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 579 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 580 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 581 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 582 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 583 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 584 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 585 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 586 * @see Crop 587 * @since 10 588 * @version 1.0 589 */ 590 int32_t OH_PixelMap_Crop(const NativePixelMap* native, int32_t x, int32_t y, int32_t width, int32_t height); 591 592 /** 593 * @brief Obtains the image information of a <b>PixelMap</b> object. 594 * 595 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 596 * @param info Indicates the pointer to the image information. 597 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 598 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 599 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 600 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 601 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 602 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 603 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 604 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 605 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 606 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 607 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 608 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 609 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 610 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 611 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 612 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 613 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 614 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 615 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 616 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. 617 * @see OhosPixelMapInfos 618 * @since 10 619 * @version 2.0 620 */ 621 int32_t OH_PixelMap_GetImageInfo(const NativePixelMap* native, OhosPixelMapInfos *info); 622 623 /** 624 * @brief Obtains the memory address of a <b>NativePixelMap</b> object and locks the memory. 625 * 626 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 627 * @param addr Indicates the double pointer to the memory address. 628 * @see UnAccessPixels 629 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 630 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 631 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 632 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 633 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 634 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 635 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 636 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 637 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 638 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 639 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 640 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 641 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 642 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 643 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 644 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 645 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 646 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 647 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 648 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. * @since 10 649 * @version 2.0 650 */ 651 int32_t OH_PixelMap_AccessPixels(const NativePixelMap* native, void** addr); 652 653 /** 654 * @brief Unlocks the memory of the <b>NativePixelMap</b> object data. 655 * This function is used with {@link OH_PixelMap_AccessPixels} in pairs. 656 * 657 * @param native Indicates the pointer to a <b>NativePixelMap</b> object. 658 * @return Returns {@link IRNdkErrCode} IMAGE_RESULT_SUCCESS - if the operation is successful. 659 * returns {@link IRNdkErrCode} IMAGE_RESULT_BAD_PARAMETER - if bad parameter. 660 * returns {@link IRNdkErrCode} IMAGE_RESULT_JNI_ENV_ABNORMAL - if Abnormal JNI environment. 661 * returns {@link IRNdkErrCode} IMAGE_RESULT_INVALID_PARAMETER - if invalid parameter. 662 * returns {@link IRNdkErrCode} IMAGE_RESULT_GET_DATA_ABNORMAL - if image get data error. 663 * returns {@link IRNdkErrCode} IMAGE_RESULT_DECODE_FAILED - if decode fail. 664 * returns {@link IRNdkErrCode} IMAGE_RESULT_CHECK_FORMAT_ERROR - if check format failed. 665 * returns {@link IRNdkErrCode} IMAGE_RESULT_THIRDPART_SKIA_ERROR - if skia error. 666 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_ABNORMAL - if image input data error. 667 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_NOT_EXIST - if sharememory error. 668 * returns {@link IRNdkErrCode} IMAGE_RESULT_ERR_SHAMEM_DATA_ABNORMAL - if sharememory data abnormal. 669 * returns {@link IRNdkErrCode} IMAGE_RESULT_MALLOC_ABNORMAL - if image malloc error. 670 * returns {@link IRNdkErrCode} IMAGE_RESULT_DATA_UNSUPPORT - if image init error. 671 * returns {@link IRNdkErrCode} IMAGE_RESULT_CROP - if crop error. 672 * returns {@link IRNdkErrCode} IMAGE_RESULT_UNKNOWN_FORMAT - if image unknown format. 673 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_REGISTER_FAILED - if register plugin fail. 674 * returns {@link IRNdkErrCode} IMAGE_RESULT_PLUGIN_CREATE_FAILED - if create plugin fail. 675 * returns {@link IRNdkErrCode} IMAGE_RESULT_INDEX_INVALID - if invalid index. 676 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALPHA_TYPE_ERROR - if hard decode failed. 677 * returns {@link IRNdkErrCode} IMAGE_RESULT_ALLOCATER_TYPE_ERROR - if hard decode failed. * @see AccessPixels 678 * @since 10 679 * @version 2.0 680 */ 681 int32_t OH_PixelMap_UnAccessPixels(const NativePixelMap* native); 682 683 #ifdef __cplusplus 684 }; 685 #endif 686 /** @} */ 687 688 #endif // INTERFACES_KITS_NATIVE_INCLUDE_IMAGE_PIXEL_MAP_NAPI_H_ 689