From da65a9add2a3ac31aada78329c4dc575ff60df66 Mon Sep 17 00:00:00 2001 From: dreamyhhh Date: Fri, 4 Jul 2025 13:53:45 +0800 Subject: [PATCH] add new ndk interface Signed-off-by: dreamyhhh --- .../native_drawing/drawing_canvas.h | 20 +++++++++++++++++++ .../native_drawing/drawing_image_filter.h | 17 ++++++++++++++++ .../native_drawing/drawing_sampling_options.h | 14 +++++++++++++ 3 files changed, 51 insertions(+) diff --git a/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_canvas.h b/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_canvas.h index 77d3c3e5..8011e86d 100644 --- a/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_canvas.h +++ b/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_canvas.h @@ -303,6 +303,26 @@ OH_Drawing_ErrorCode OH_Drawing_CanvasDrawPixelMapNine(OH_Drawing_Canvas* canvas void OH_Drawing_CanvasDrawPixelMapRect(OH_Drawing_Canvas* canvas, OH_Drawing_PixelMap* pixelMap, const OH_Drawing_Rect* src, const OH_Drawing_Rect* dst, const OH_Drawing_SamplingOptions* samplingOptions); +/** + * @brief 用于将像素图的指定区域绘制到画布的指定区域。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param canvas 指向画布对象{@link OH_Drawing_Canvas}的指针。 + * @param pixelMap 指向像素图{@link OH_Drawing_PixelMap}的指针。 + * @param src 像素图指定矩形区域,为NULL将指定整个像素图区域。 + * @param dst 目标画布指定矩形区域。 + * @param samplingOptions 指向采样选项对象{@link OH_Drawing_SamplingOptions}的指针,为NULL将使用默认采样选项。 + * @param constraint 约束类型,支持可选的具体类型可见{@link OH_Drawing_SrcRectConstraint}枚举。 + * @return 函数返回执行错误码。\n + * 返回OH_DRAWING_SUCCESS,表示执行成功。\n + * 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、pixelMap或dst为空。 + * @since 20 + * @version 1.0 + */ +OH_Drawing_ErrorCode OH_Drawing_CanvasDrawPixelMapRectConstraint(OH_Drawing_Canvas* canvas, + OH_Drawing_PixelMap* pixelMap, const OH_Drawing_Rect* src, const OH_Drawing_Rect* dst, + const OH_Drawing_SamplingOptions* samplingOptions, OH_Drawing_SrcRectConstraint constraint); + /** * @brief 用于画一个背景,此背景以画刷填充。\n * diff --git a/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_image_filter.h b/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_image_filter.h index e5762473..edace078 100644 --- a/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_image_filter.h +++ b/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_image_filter.h @@ -64,6 +64,23 @@ extern "C" { OH_Drawing_ImageFilter* OH_Drawing_ImageFilterCreateBlur(float sigmaX, float sigmaY, OH_Drawing_TileMode tileMode, OH_Drawing_ImageFilter* imageFilter); +/** + * @brief 创建具有模糊效果的图像滤波器。\n + * 支持可选的裁剪矩形,将模糊效果限制在图像的特定区域内。​ + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param sigmaX 表示沿x轴方向上高斯模糊的标准差,必须大于0。 + * @param sigmaY 表示沿y轴方向上高斯模糊的标准差,必须大于0。 + * @param tileMode 图像滤波器效果平铺模式类型,支持可选的具体模式可见{@link OH_Drawing_TileMode}枚举。 + * @param input 表示将要和当前图像滤波器叠加的输入滤波器, 如果为NULL,表示直接将当前图像滤波器作用于原始图像。 + * @param rect 表示裁剪的矩形区域,如果为NULL,表示直接模糊效果将应用与整个图像。 + * @return 函数会返回一个指针,指针指向创建的图像滤波器对象{@link OH_Drawing_ImageFilter}。如果对象返回NULL,表示创建失败;可能的原因是可用内存为空。 + * @since 20 + * @version 1.0 + */ +OH_Drawing_ImageFilter* OH_Drawing_ImageFilterCreateBlurWithCrop(float sigmaX, float sigmaY, + OH_Drawing_TileMode tileMode, OH_Drawing_ImageFilter* input, const OH_Drawing_Rect* rect); + /** * @brief 创建具有颜色变换效果的图像滤波器。 * diff --git a/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_sampling_options.h b/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_sampling_options.h index 35dd8ac1..79bdd0c7 100644 --- a/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_sampling_options.h +++ b/zh-cn/native_sdk/graphic/graphic_2d/native_drawing/drawing_sampling_options.h @@ -92,6 +92,20 @@ typedef enum { OH_Drawing_SamplingOptions* OH_Drawing_SamplingOptionsCreate(OH_Drawing_FilterMode filterMode, OH_Drawing_MipmapMode mipmapMode); +/** + * @brief 创建一个采样选项对象副本{@link OH_Drawing_SamplingOptions},用于拷贝一个已有采样选项对象。\n + * + * 本接口会产生错误码,可以通过{@link OH_Drawing_ErrorCodeGet}查看错误码的取值。\n + * samplingOptions为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 + * + * @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing + * @param samplingOptions 指向采样选项对象{@link OH_Drawing_SamplingOptions}的指针。 + * @return 函数会返回一个指针,指针指向创建的采样选项对象副本{@link OH_Drawing_SamplingOptions}。如果对象返回NULL,表示创建失败;可能的原因是可用内存为空,或者是samplingOptions为NULL。 + * @since 20 + * @version 1.0 + */ +OH_Drawing_SamplingOptions* OH_Drawing_SamplingOptionsCopy(OH_Drawing_SamplingOptions* samplingOptions); + /** * @brief 销毁采样选项对象并回收该对象占有内存。 * -- Gitee