• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# drawing_canvas.h
2
3<!--Kit: ArkGraphics 2D-->
4<!--Subsystem: Graphic-->
5<!--Owner: @hangmengxin-->
6<!--Designer: @wangyanglan-->
7<!--Tester: @nobuggers-->
8<!--Adviser: @ge-yafang-->
9
10## 概述
11
12文件中定义了与画布相关的功能函数。<br>画布自带一个黑色,开启抗锯齿,不具备其他任何样式的默认画刷,当且仅当画布中主动设置的画刷和画笔都不存在时生效。
13
14<!--RP1-->
15**相关示例:** [NDKAPIDrawing (API14)](https://gitcode.com/openharmony/applications_app_samples/tree/master/code/DocsSample/Drawing/NDKAPIDrawing)<!--RP1End-->
16
17**引用文件:** <native_drawing/drawing_canvas.h>
18
19**库:** libnative_drawing.so
20
21**起始版本:** 8
22
23**相关模块:** [Drawing](capi-drawing.md)
24
25## 汇总
26
27### 枚举
28
29| 名称 | typedef关键字 | 描述 |
30| -- | -- | -- |
31| [OH_Drawing_SrcRectConstraint](#oh_drawing_srcrectconstraint) | OH_Drawing_SrcRectConstraint | 源矩形区域约束类型枚举。 |
32| [OH_Drawing_PointMode](#oh_drawing_pointmode) | OH_Drawing_PointMode | 绘制多个点的方式枚举,方式分为离散点、直线或开放多边形。 |
33| [OH_Drawing_CanvasClipOp](#oh_drawing_canvasclipop) | OH_Drawing_CanvasClipOp | 画布裁剪方式的枚举集合。 |
34| [OH_Drawing_CanvasShadowFlags](#oh_drawing_canvasshadowflags) | OH_Drawing_CanvasShadowFlags | 阴影标志枚举。 |
35| [OH_Drawing_VertexMode](#oh_drawing_vertexmode) | OH_Drawing_VertexMode | 用于指定如何解释给定顶点的几何形状的枚举类型。 |
36
37### 函数
38
39| 名称 | 描述 |
40| -- | -- |
41| [OH_Drawing_Canvas* OH_Drawing_CanvasCreate(void)](#oh_drawing_canvascreate) | 用于创建一个画布对象。 |
42| [OH_Drawing_Canvas* OH_Drawing_CanvasCreateWithPixelMap(OH_Drawing_PixelMap* pixelMap)](#oh_drawing_canvascreatewithpixelmap) | 用于将一个像素图对象绑定到画布中,使得画布绘制的内容输出到像素图中(即CPU渲染)。绑定像素图对象后的画布为非录制类型画布。<br>像素图对象应该在销毁画布对象之后调用[OH_Drawing_PixelMapDissolve](capi-drawing-pixel-map-h.md#oh_drawing_pixelmapdissolve)解除绑定。 |
43| [void OH_Drawing_CanvasDestroy(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasdestroy) | 用于销毁画布对象并回收该对象占有的内存。 |
44| [void OH_Drawing_CanvasBind(OH_Drawing_Canvas* canvas, OH_Drawing_Bitmap* bitmap)](#oh_drawing_canvasbind) | 用于将一个位图对象绑定到画布中,使得画布绘制的内容输出到位图中(即CPU渲染)。绑定位图对象后的画布为非录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
45| [void OH_Drawing_CanvasAttachPen(OH_Drawing_Canvas* canvas, const OH_Drawing_Pen* pen)](#oh_drawing_canvasattachpen) | 用于设置画笔给画布,画布将会使用设置画笔的样式和颜色去绘制图形形状的轮廓。执行该方法后,若画笔的效果发生改变并且开发者希望该变化生效于接下来的绘制动作,需要再次执行该方法以确保变化生效。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、pen任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
46| [void OH_Drawing_CanvasDetachPen(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasdetachpen) | 用于去除掉画布中的画笔,使用后画布将不去绘制图形形状的轮廓。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
47| [void OH_Drawing_CanvasAttachBrush(OH_Drawing_Canvas* canvas, const OH_Drawing_Brush* brush)](#oh_drawing_canvasattachbrush) | 用于设置画刷给画布,画布将会使用设置的画刷样式和颜色去填充绘制的图形形状。执行该方法后,若画刷的效果发生改变并且开发者希望该变化生效于接下来的绘制动作,需要再次执行该方法以确保变化生效。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、brush任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
48| [void OH_Drawing_CanvasDetachBrush(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasdetachbrush) | 用于去除掉画布中的画刷,使用后画布将不使用此前设置的画刷去填充图形形状。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
49| [void OH_Drawing_CanvasSave(OH_Drawing_Canvas* canvas)](#oh_drawing_canvassave) | 用于保存当前画布的状态(画布矩阵)到一个栈顶。需要与恢复接口[OH_Drawing_CanvasRestore](capi-drawing-canvas-h.md#oh_drawing_canvasrestore)配合使用。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
50| [void OH_Drawing_CanvasSaveLayer(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect, const OH_Drawing_Brush* brush)](#oh_drawing_canvassavelayer) | 保存矩阵和裁剪区域,为后续绘制分配位图。调用恢复接口。<br>[OH_Drawing_CanvasRestore](capi-drawing-canvas-h.md#oh_drawing_canvasrestore)将放弃对矩阵和剪切区域所做的更改,并绘制位图。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
51| [void OH_Drawing_CanvasRestore(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasrestore) | 用于恢复保存在栈顶的画布状态(画布矩阵)。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
52| [uint32_t OH_Drawing_CanvasGetSaveCount(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasgetsavecount) | 用于获取栈中保存的画布状态(画布矩阵)的数量。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
53| [void OH_Drawing_CanvasRestoreToCount(OH_Drawing_Canvas* canvas, uint32_t saveCount)](#oh_drawing_canvasrestoretocount) | 用于恢复到指定数量的画布状态(画布矩阵)。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
54| [void OH_Drawing_CanvasDrawLine(OH_Drawing_Canvas* canvas, float x1, float y1, float x2, float y2)](#oh_drawing_canvasdrawline) | 用于画一条直线段。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
55| [void OH_Drawing_CanvasDrawPath(OH_Drawing_Canvas* canvas, const OH_Drawing_Path* path)](#oh_drawing_canvasdrawpath) | 用于画一个自定义路径。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、path任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
56| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawPixelMapNine(OH_Drawing_Canvas* canvas, OH_Drawing_PixelMap* pixelMap,const OH_Drawing_Rect* center, const OH_Drawing_Rect* dst, OH_Drawing_FilterMode mode)](#oh_drawing_canvasdrawpixelmapnine) | 通过绘制两条水平线和两条垂直线将像素图分割成9个部分:四个边,四个角和中心。<br>若角落的4个区域尺寸不超过目标矩形,则会在不缩放的情况下被绘制在目标矩形,反之则会按比例缩放绘制在目标矩形。<br>如果还有剩余空间,剩下的5个区域会通过拉伸或压缩来绘制,以便能够完全覆盖目标矩形。 |
57| [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)](#oh_drawing_canvasdrawpixelmaprect) | 用于将像素图的指定区域绘制到画布的指定区域。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、pixelMap、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
58| [void OH_Drawing_CanvasDrawBackground(OH_Drawing_Canvas* canvas, const OH_Drawing_Brush* brush)](#oh_drawing_canvasdrawbackground) | 用于画一个背景,此背景以画刷填充。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、brush任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
59| [void OH_Drawing_CanvasDrawRegion(OH_Drawing_Canvas* canvas, const OH_Drawing_Region* region)](#oh_drawing_canvasdrawregion) | 用于画一块区域。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、region任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
60| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawPoint(OH_Drawing_Canvas* canvas, const OH_Drawing_Point2D* point)](#oh_drawing_canvasdrawpoint) | 用于画一个点。 |
61| [void OH_Drawing_CanvasDrawPoints(OH_Drawing_Canvas* canvas, OH_Drawing_PointMode mode,uint32_t count, const OH_Drawing_Point2D* point2D)](#oh_drawing_canvasdrawpoints) | 用于画多个点,绘制方式分为绘制单独的点、绘制成线段或绘制成开放多边形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、point2D任意一个为NULL或者count等于0时返回OH_DRAWING_ERROR_INVALID_PARAMETER;mode不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
62| [void OH_Drawing_CanvasDrawBitmap(OH_Drawing_Canvas* canvas, const OH_Drawing_Bitmap* bitmap, float left, float top)](#oh_drawing_canvasdrawbitmap) | 用于画一个位图,位图又称为点阵图像、像素图或栅格图像,是由像素(图片元素)的单个点组成。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
63| [void OH_Drawing_CanvasDrawBitmapRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Bitmap* bitmap,const OH_Drawing_Rect* src, const OH_Drawing_Rect* dst, const OH_Drawing_SamplingOptions* samplingOptions)](#oh_drawing_canvasdrawbitmaprect) | 将位图的指定区域绘制到画布的指定区域。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
64| [void OH_Drawing_CanvasDrawRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect)](#oh_drawing_canvasdrawrect) | 用于画一个矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、OH_Drawing_Rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
65| [void OH_Drawing_CanvasDrawCircle(OH_Drawing_Canvas* canvas, const OH_Drawing_Point* point, float radius)](#oh_drawing_canvasdrawcircle) | 用于画一个圆形。本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。canvas、point任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>radius小于等于0时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
66| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawColor(OH_Drawing_Canvas* canvas, uint32_t color,OH_Drawing_BlendMode blendMode)](#oh_drawing_canvasdrawcolor) | 用于使用指定的颜色及混合模式来填充整个画布。 |
67| [void OH_Drawing_CanvasDrawOval(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect)](#oh_drawing_canvasdrawoval) | 用于画一个椭圆。本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
68| [void OH_Drawing_CanvasDrawArc(OH_Drawing_Canvas* canvas,const OH_Drawing_Rect* rect, float startAngle, float sweepAngle)](#oh_drawing_canvasdrawarc) | 用于画一个弧。当扫描角度的绝对值大于360度时,本接口绘制的是一个椭圆。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
69| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawArcWithCenter(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect,float startAngle, float sweepAngle, bool useCenter)](#oh_drawing_canvasdrawarcwithcenter) | 绘制一段圆弧。该方法允许指定圆弧的起始角度、扫描角度以及圆弧的起点和终点是否连接圆弧的中心点。 |
70| [void OH_Drawing_CanvasDrawRoundRect(OH_Drawing_Canvas* canvas, const OH_Drawing_RoundRect* roundRect)](#oh_drawing_canvasdrawroundrect) | 用于画一个圆角矩形。本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。canvas、roundRect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
71| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawNestedRoundRect(OH_Drawing_Canvas* canvas, const OH_Drawing_RoundRect* outer,const OH_Drawing_RoundRect* inner)](#oh_drawing_canvasdrawnestedroundrect) | 绘制两个嵌套的圆角矩形,外部矩形边界必须包含内部矩形边界,否则无绘制效果。 |
72| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawSingleCharacter(OH_Drawing_Canvas* canvas, const char* str,const OH_Drawing_Font* font, float x, float y)](#oh_drawing_canvasdrawsinglecharacter) | 用于绘制单个字符。当前字型中的字体不支持待绘制字符时,退化到使用系统字体绘制字符。 |
73| [void OH_Drawing_CanvasDrawTextBlob(OH_Drawing_Canvas* canvas, const OH_Drawing_TextBlob* textBlob, float x, float y)](#oh_drawing_canvasdrawtextblob) | 用于画一段文字。若构造OH_Drawing_TextBlob的字体不支持待绘制字符,则该部分字符无法绘制。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、textBlob任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
74| [void OH_Drawing_CanvasClipRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect,OH_Drawing_CanvasClipOp clipOp, bool doAntiAlias)](#oh_drawing_canvascliprect) | 用于裁剪一个矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>clipOp不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
75| [void OH_Drawing_CanvasClipRoundRect(OH_Drawing_Canvas* canvas, const OH_Drawing_RoundRect* roundRect,OH_Drawing_CanvasClipOp clipOp, bool doAntiAlias)](#oh_drawing_canvascliproundrect) | 用于裁剪一个圆角矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、roundRect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>clipOp不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
76| [void OH_Drawing_CanvasClipPath(OH_Drawing_Canvas* canvas, const OH_Drawing_Path* path,OH_Drawing_CanvasClipOp clipOp, bool doAntiAlias)](#oh_drawing_canvasclippath) | 用于裁剪一个自定义路径。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、path任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>clipOp不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
77| [OH_Drawing_ErrorCode OH_Drawing_CanvasClipRegion(OH_Drawing_Canvas* canvas, const OH_Drawing_Region* region,OH_Drawing_CanvasClipOp clipOp)](#oh_drawing_canvasclipregion) | 用于裁剪一个区域。 |
78| [void OH_Drawing_CanvasRotate(OH_Drawing_Canvas* canvas, float degrees, float px, float py)](#oh_drawing_canvasrotate) | 用于画布旋转一定的角度,正数表示顺时针旋转,负数反之。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
79| [void OH_Drawing_CanvasTranslate(OH_Drawing_Canvas* canvas, float dx, float dy)](#oh_drawing_canvastranslate) | 用于平移画布一段距离。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
80| [void OH_Drawing_CanvasScale(OH_Drawing_Canvas* canvas, float sx, float sy)](#oh_drawing_canvasscale) | 用于画布缩放。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
81| [void OH_Drawing_CanvasSkew(OH_Drawing_Canvas* canvas, float sx, float sy)](#oh_drawing_canvasskew) | 用于画布倾斜变换。等同于将当前画布矩阵左乘(premultiply)倾斜变换矩阵,并应用到画布上。其中倾斜变换矩阵为:<br>|1 sx 0|  <br>|sy 1 0|  <br>|0  0 1|。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
82| [int32_t OH_Drawing_CanvasGetWidth(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasgetwidth) | 获取画布宽度。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
83| [int32_t OH_Drawing_CanvasGetHeight(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasgetheight) | 获取画布高度。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
84| [void OH_Drawing_CanvasGetLocalClipBounds(OH_Drawing_Canvas* canvas, OH_Drawing_Rect* rect)](#oh_drawing_canvasgetlocalclipbounds) | 获取画布裁剪区域的边界。该接口不可用于录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
85| [void OH_Drawing_CanvasGetTotalMatrix(OH_Drawing_Canvas* canvas, OH_Drawing_Matrix* matrix)](#oh_drawing_canvasgettotalmatrix) | 获取画布3x3矩阵。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、matrix任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
86| [void OH_Drawing_CanvasConcatMatrix(OH_Drawing_Canvas* canvas, OH_Drawing_Matrix* matrix)](#oh_drawing_canvasconcatmatrix) | 画布现有矩阵左乘以传入矩阵,不影响该接口之前的绘制操作。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、matrix任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
87| [void OH_Drawing_CanvasDrawShadow(OH_Drawing_Canvas* canvas, OH_Drawing_Path* path, OH_Drawing_Point3D planeParams,OH_Drawing_Point3D devLightPos, float lightRadius, uint32_t ambientColor, uint32_t spotColor,OH_Drawing_CanvasShadowFlags flag)](#oh_drawing_canvasdrawshadow) | 绘制射灯类型阴影,使用路径描述环境光阴影的轮廓。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、path任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>flag不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
88| [void OH_Drawing_CanvasClear(OH_Drawing_Canvas* canvas, uint32_t color)](#oh_drawing_canvasclear) | 用于使用指定颜色去清空画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
89| [void OH_Drawing_CanvasSetMatrix(OH_Drawing_Canvas* canvas, OH_Drawing_Matrix* matrix)](#oh_drawing_canvassetmatrix) | 设置画布的矩阵状态。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、matrix任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
90| [void OH_Drawing_CanvasResetMatrix(OH_Drawing_Canvas* canvas)](#oh_drawing_canvasresetmatrix) | 重置当前画布的矩阵为单位矩阵。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
91| [void OH_Drawing_CanvasDrawImageRectWithSrc(OH_Drawing_Canvas* canvas, const OH_Drawing_Image* image,const OH_Drawing_Rect* src, const OH_Drawing_Rect* dst, const OH_Drawing_SamplingOptions* samplingOptions,OH_Drawing_SrcRectConstraint srcRectConstraint)](#oh_drawing_canvasdrawimagerectwithsrc) | 将图片绘制到画布的指定区域上,源矩形选定的区域会缩放平移到目标矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、image、src、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
92| [void OH_Drawing_CanvasDrawImageRect(OH_Drawing_Canvas* canvas, OH_Drawing_Image* image,OH_Drawing_Rect* rect, OH_Drawing_SamplingOptions* samplingOptions)](#oh_drawing_canvasdrawimagerect) | 将图片绘制到画布的指定区域上。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、image、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
93| [void OH_Drawing_CanvasDrawVertices(OH_Drawing_Canvas* canvas, OH_Drawing_VertexMode vertexMmode,int32_t vertexCount, const OH_Drawing_Point2D* positions, const OH_Drawing_Point2D* texs,const uint32_t* colors, int32_t indexCount, const uint16_t* indices, OH_Drawing_BlendMode mode)](#oh_drawing_canvasdrawvertices) | 用于画顶点数组描述的三角网格。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas或positions为NULL、vertexCount值小于3、indexCount值小于3且不为0,存在以上任意一种情况时设置错误码为OH_DRAWING_ERROR_INVALID_PARAMETER;<br>vertexMmode、mode任意一个不在枚举范围内时设置错误码为OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
94| [bool OH_Drawing_CanvasReadPixels(OH_Drawing_Canvas* canvas, OH_Drawing_Image_Info* imageInfo,void* dstPixels, uint32_t dstRowBytes, int32_t srcX, int32_t srcY)](#oh_drawing_canvasreadpixels) | 从画布中拷贝像素数据到指定地址。该接口不可用于录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、imageInfo、dstPixels任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
95| [bool OH_Drawing_CanvasReadPixelsToBitmap(OH_Drawing_Canvas* canvas,OH_Drawing_Bitmap* bitmap, int32_t srcX, int32_t srcY)](#oh_drawing_canvasreadpixelstobitmap) | 从画布拷贝像素数据到位图中。该接口不可用于录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
96| [OH_Drawing_ErrorCode OH_Drawing_CanvasIsClipEmpty(OH_Drawing_Canvas* canvas, bool* isClipEmpty)](#oh_drawing_canvasisclipempty) | 用于判断裁剪后可绘制区域是否为空。<br> |
97| [OH_Drawing_ErrorCode OH_Drawing_CanvasGetImageInfo(OH_Drawing_Canvas* canvas, OH_Drawing_Image_Info* imageInfo)](#oh_drawing_canvasgetimageinfo) | 用于获取画布的图像信息。<br> |
98| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawRecordCmd(OH_Drawing_Canvas* canvas, OH_Drawing_RecordCmd* recordCmd)](#oh_drawing_canvasdrawrecordcmd) | 用于绘制录制指令对象。<br> |
99| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawRecordCmdNesting(OH_Drawing_Canvas* canvas, OH_Drawing_RecordCmd* recordCmd)](#oh_drawing_canvasdrawrecordcmdnesting) | 用于绘制录制指令对象,支持嵌套。<br> 本接口支持[OH_Drawing_RecordCmdUtilsBeginRecording](capi-drawing-record-cmd-h.md#oh_drawing_recordcmdutilsbeginrecording)接口生成的画布对象作为入参,嵌套调用。不建议多层嵌套,会影响性能。 |
100| [OH_Drawing_ErrorCode OH_Drawing_CanvasQuickRejectPath(OH_Drawing_Canvas* canvas, const OH_Drawing_Path* path,bool* quickReject)](#oh_drawing_canvasquickrejectpath) | 判断路径与画布区域是否不相交。画布区域包含边界。<br> |
101| [OH_Drawing_ErrorCode OH_Drawing_CanvasQuickRejectRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect,bool* quickReject)](#oh_drawing_canvasquickrejectrect) | 判断矩形和画布区域是否不相交。画布区域包含边界。<br> |
102| [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)](#oh_drawing_canvasdrawpixelmaprectconstraint) | 用于将像素图的指定区域绘制到画布的指定区域。 |
103| [OH_Drawing_ErrorCode OH_Drawing_CanvasDrawSingleCharacterWithFeatures(OH_Drawing_Canvas* canvas, const char* str,const OH_Drawing_Font* font, float x, float y, OH_Drawing_FontFeatures* fontFeatures)](#oh_drawing_canvasdrawsinglecharacterwithfeatures) | 绘制单个字符,字符带有字体特征。当前字型中的字体不支持待绘制字符时,退化到使用系统字体绘制字符。 |
104
105## 枚举类型说明
106
107### OH_Drawing_SrcRectConstraint
108
109```
110enum OH_Drawing_SrcRectConstraint
111```
112
113**描述**
114
115源矩形区域约束类型枚举。
116
117**起始版本:** 12
118
119| 枚举项 | 描述 |
120| -- | -- |
121| STRICT_SRC_RECT_CONSTRAINT | 严格约束,源矩形区域必须完全包含在图像中。 |
122| FAST_SRC_RECT_CONSTRAINT | 快速约束,源矩形区域可以部分位于图像之外。 |
123
124### OH_Drawing_PointMode
125
126```
127enum OH_Drawing_PointMode
128```
129
130**描述**
131
132绘制多个点的方式枚举,方式分为离散点、直线或开放多边形。
133
134**起始版本:** 12
135
136| 枚举项 | 描述 |
137| -- | -- |
138| POINT_MODE_POINTS | 分别绘制每个点。 |
139| POINT_MODE_LINES | 将每两个点绘制为线段。 |
140| POINT_MODE_POLYGON | 将点阵列绘制为开放多边形。 |
141
142### OH_Drawing_CanvasClipOp
143
144```
145enum OH_Drawing_CanvasClipOp
146```
147
148**描述**
149
150画布裁剪方式的枚举集合。
151
152**起始版本:** 11
153
154| 枚举项 | 描述 |
155| -- | -- |
156| DIFFERENCE | 将指定区域裁剪(取差集)。 |
157| INTERSECT | 将指定区域保留(取交集)。 |
158
159### OH_Drawing_CanvasShadowFlags
160
161```
162enum OH_Drawing_CanvasShadowFlags
163```
164
165**描述**
166
167阴影标志枚举。
168
169**起始版本:** 12
170
171| 枚举项 | 描述 |
172| -- | -- |
173| SHADOW_FLAGS_NONE | 无阴影标志。 |
174| SHADOW_FLAGS_TRANSPARENT_OCCLUDER | 遮挡物对象不透明标志。 |
175| SHADOW_FLAGS_GEOMETRIC_ONLY | 不分析阴影标志。 |
176| SHADOW_FLAGS_ALL | 使能以上所有阴影标志。 |
177
178### OH_Drawing_VertexMode
179
180```
181enum OH_Drawing_VertexMode
182```
183
184**描述**
185
186用于指定如何解释给定顶点的几何形状的枚举类型。
187
188**起始版本:** 12
189
190| 枚举项 | 描述 |
191| -- | -- |
192| VERTEX_MODE_TRIANGLES | 每三个顶点表示一个三角形,如果顶点数不是3的倍数,则多余的顶点会被忽略。 |
193| VERTEX_MODE_TRIANGLESSTRIP | 相邻三个顶点表示一个三角形,每个新的顶点将与前两个顶点组成一个新的三角形。 |
194| VERTEX_MODE_TRIANGLEFAN | 第一个顶点作为中心点,后续的每个顶点都与前一个顶点和中心点组成一个三角形。 |
195
196
197## 函数说明
198
199### OH_Drawing_CanvasDrawSingleCharacterWithFeatures()
200
201```
202OH_Drawing_ErrorCode OH_Drawing_CanvasDrawSingleCharacterWithFeatures(OH_Drawing_Canvas* canvas, const char* str, const OH_Drawing_Font* font, float x, float y, OH_Drawing_FontFeatures* fontFeatures)
203```
204
205**描述**
206
207绘制单个字符,字符带有字体特征。当前字型中的字体不支持待绘制字符时,退化到使用系统字体绘制字符。
208
209**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
210
211**起始版本:** 20
212
213
214**参数:**
215
216| 参数项 | 描述 |
217| -- | -- |
218| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
219| const char* str | 待绘制的单个字符。可以传入字符串,但只会以UTF-8编码解析并绘制字符串中的首个字符。 |
220| [const OH_Drawing_Font](capi-drawing-oh-drawing-font.md)* font | 指向字型对象[OH_Drawing_Font](capi-drawing-oh-drawing-font.md)的指针。 |
221| float x | 字符对象基线左端点(靠近字符左下角)的横坐标。 |
222| float y | 字符对象基线左端点(靠近字符左下角)的纵坐标。 |
223| [OH_Drawing_FontFeatures](capi-drawing-oh-drawing-fontfeatures.md)* fontFeatures | 指向字体特征容器对象[OH_Drawing_FontFeatures](capi-drawing-oh-drawing-fontfeatures.md)的指针。容器中未加入任何字体特征时使用TTF(TrueType Font)文件中预设的字体特征。 |
224
225**返回:**
226
227| 类型 | 说明 |
228| -- | -- |
229| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行结果。<br>返回OH_DRAWING_SUCCESS,表示执行成功。<br>返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、str、font或者fontFeatures任意一个为NULL或者str的长度为0。 |
230
231### OH_Drawing_CanvasDrawPixelMapRectConstraint()
232
233```
234OH_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)
235```
236
237**描述**
238
239用于将像素图的指定区域绘制到画布的指定区域。
240
241**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
242
243**起始版本:** 20
244
245
246**参数:**
247
248| 参数项 | 描述 |
249| -- | -- |
250| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
251| [OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)* pixelMap | 指向像素图[OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)的指针。 |
252| [const OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* src | 像素图指定矩形区域,为NULL将指定整个像素图区域。 |
253| [const OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* dst | 目标画布指定矩形区域。 |
254| [const OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)* samplingOptions | 指向采样选项对象[OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)的指针,为NULL将使用默认采样选项。 |
255| [OH_Drawing_SrcRectConstraint](capi-drawing-canvas-h.md#oh_drawing_srcrectconstraint) constraint | 约束类型,支持可选的具体类型可见[OH_Drawing_SrcRectConstraint](capi-drawing-canvas-h.md#oh_drawing_srcrectconstraint)枚举。 |
256
257**返回:**
258
259| 类型 | 说明 |
260| -- | -- |
261| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行结果。<br>返回OH_DRAWING_SUCCESS,表示执行成功。<br>返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、pixelMap或dst为空。 |
262
263### OH_Drawing_CanvasDrawRecordCmdNesting()
264
265```
266OH_Drawing_ErrorCode OH_Drawing_CanvasDrawRecordCmdNesting(OH_Drawing_Canvas* canvas, OH_Drawing_RecordCmd* recordCmd)
267```
268
269**描述**
270
271用于绘制录制指令对象,支持嵌套。
272
273本接口支持[OH_Drawing_RecordCmdUtilsBeginRecording](capi-drawing-record-cmd-h.md#oh_drawing_recordcmdutilsbeginrecording)接口生成的画布对象作为入参,嵌套调用。不建议多层嵌套,会影响性能。
274
275**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
276
277**起始版本:** 19
278
279
280**参数:**
281
282| 参数项 | 描述 |
283| -- | -- |
284| OH_Drawing_Canvas* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针,仅支持录制类型画布。 |
285| OH_Drawing_RecordCmd* recordCmd | 指向录制指令对象[OH_Drawing_RecordCmd](capi-drawing-oh-drawing-recordcmd.md)的指针。 |
286
287**返回:**
288
289| 类型 | 说明 |
290| -- | -- |
291| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行操作码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者recordCmd为空。 |
292
293### OH_Drawing_CanvasCreate()
294
295```
296OH_Drawing_Canvas* OH_Drawing_CanvasCreate(void)
297```
298
299**描述**
300
301用于创建一个画布对象。
302
303**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
304
305**起始版本:** 8
306
307**返回:**
308
309| 类型 | 说明 |
310| -- | -- |
311| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* | 函数会返回一个指针,指针指向创建的画布对象。 |
312
313### OH_Drawing_CanvasCreateWithPixelMap()
314
315```
316OH_Drawing_Canvas* OH_Drawing_CanvasCreateWithPixelMap(OH_Drawing_PixelMap* pixelMap)
317```
318
319**描述**
320
321用于将一个像素图对象绑定到画布中,使得画布绘制的内容输出到像素图中(即CPU渲染)。绑定像素图对象后的画布为非录制类型画布。<br>像素图对象应该在销毁画布对象之后调用[OH_Drawing_PixelMapDissolve](capi-drawing-pixel-map-h.md#oh_drawing_pixelmapdissolve)解除绑定。
322
323**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
324
325**起始版本:** 20
326
327
328**参数:**
329
330| 参数项 | 描述 |
331| -- | -- |
332| [OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)* pixelMap | 指向像素图[OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)的指针。 |
333
334**返回:**
335
336| 类型 | 说明 |
337| -- | -- |
338| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* | 函数会返回一个指针,指针指向创建的画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md),如果对象返回为NULL,则创建失败,原因可能是可用内存不足或者像素图对象为空。 |
339
340### OH_Drawing_CanvasDestroy()
341
342```
343void OH_Drawing_CanvasDestroy(OH_Drawing_Canvas* canvas)
344```
345
346**描述**
347
348用于销毁画布对象并回收该对象占有的内存。
349
350**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
351
352**起始版本:** 8
353
354
355**参数:**
356
357| 参数项 | 描述 |
358| -- | -- |
359| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
360
361### OH_Drawing_CanvasBind()
362
363```
364void OH_Drawing_CanvasBind(OH_Drawing_Canvas* canvas, OH_Drawing_Bitmap* bitmap)
365```
366
367**描述**
368
369用于将一个位图对象绑定到画布中,使得画布绘制的内容输出到位图中(即CPU渲染)。绑定位图对象后的画布为非录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
370
371**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
372
373**起始版本:** 8
374
375
376**参数:**
377
378| 参数项 | 描述 |
379| -- | -- |
380| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
381| [OH_Drawing_Bitmap](capi-drawing-oh-drawing-bitmap.md)* bitmap | 指向位图对象的指针。 |
382
383### OH_Drawing_CanvasAttachPen()
384
385```
386void OH_Drawing_CanvasAttachPen(OH_Drawing_Canvas* canvas, const OH_Drawing_Pen* pen)
387```
388
389**描述**
390
391用于设置画笔给画布,画布将会使用设置画笔的样式和颜色去绘制图形形状的轮廓。执行该方法后,若画笔的效果发生改变并且开发者希望该变化生效于接下来的绘制动作,需要再次执行该方法以确保变化生效。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、pen任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
392
393**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
394
395**起始版本:** 8
396
397
398**参数:**
399
400| 参数项 | 描述 |
401| -- | -- |
402| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
403| const [OH_Drawing_Pen](capi-drawing-oh-drawing-pen.md)* pen | 指向画笔对象的指针。 |
404
405### OH_Drawing_CanvasDetachPen()
406
407```
408void OH_Drawing_CanvasDetachPen(OH_Drawing_Canvas* canvas)
409```
410
411**描述**
412
413用于去除掉画布中的画笔,使用后画布将不去绘制图形形状的轮廓。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
414
415**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
416
417**起始版本:** 8
418
419
420**参数:**
421
422| 参数项 | 描述 |
423| -- | -- |
424| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
425
426### OH_Drawing_CanvasAttachBrush()
427
428```
429void OH_Drawing_CanvasAttachBrush(OH_Drawing_Canvas* canvas, const OH_Drawing_Brush* brush)
430```
431
432**描述**
433
434用于设置画刷给画布,画布将会使用设置的画刷样式和颜色去填充绘制的图形形状。执行该方法后,若画刷的效果发生改变并且开发者希望该变化生效于接下来的绘制动作,需要再次执行该方法以确保变化生效。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、brush任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
435
436**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
437
438**起始版本:** 8
439
440
441**参数:**
442
443| 参数项 | 描述 |
444| -- | -- |
445| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
446| const [OH_Drawing_Brush](capi-drawing-oh-drawing-brush.md)* brush | 指向画刷对象的指针。 |
447
448### OH_Drawing_CanvasDetachBrush()
449
450```
451void OH_Drawing_CanvasDetachBrush(OH_Drawing_Canvas* canvas)
452```
453
454**描述**
455
456用于去除掉画布中的画刷,使用后画布将不使用此前设置的画刷去填充图形形状。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
457
458**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
459
460**起始版本:** 8
461
462
463**参数:**
464
465| 参数项 | 描述 |
466| -- | -- |
467| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
468
469### OH_Drawing_CanvasSave()
470
471```
472void OH_Drawing_CanvasSave(OH_Drawing_Canvas* canvas)
473```
474
475**描述**
476
477用于保存当前画布的状态(画布矩阵)到一个栈顶。需要与恢复接口[OH_Drawing_CanvasRestore](capi-drawing-canvas-h.md#oh_drawing_canvasrestore)配合使用。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
478
479**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
480
481**起始版本:** 8
482
483
484**参数:**
485
486| 参数项 | 描述 |
487| -- | -- |
488| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
489
490### OH_Drawing_CanvasSaveLayer()
491
492```
493void OH_Drawing_CanvasSaveLayer(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect, const OH_Drawing_Brush* brush)
494```
495
496**描述**
497
498保存矩阵和裁剪区域,为后续绘制分配位图。调用恢复接口。<br>[OH_Drawing_CanvasRestore](capi-drawing-canvas-h.md#oh_drawing_canvasrestore)将放弃对矩阵和剪切区域所做的更改,并绘制位图。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
499
500**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
501
502**起始版本:** 12
503
504
505**参数:**
506
507| 参数项 | 描述 |
508| -- | -- |
509| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
510| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针,用于限制图层大小,为NULL表示无限制。 |
511| const [OH_Drawing_Brush](capi-drawing-oh-drawing-brush.md)* brush | 指向画刷对象[OH_Drawing_Brush](capi-drawing-oh-drawing-brush.md)的指针,绘制位图时会应用画刷对象的透明度,滤波器效果,混合模式,为NULL表示不应用任何效果。 |
512
513### OH_Drawing_CanvasRestore()
514
515```
516void OH_Drawing_CanvasRestore(OH_Drawing_Canvas* canvas)
517```
518
519**描述**
520
521用于恢复保存在栈顶的画布状态(画布矩阵)。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
522
523**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
524
525**起始版本:** 8
526
527
528**参数:**
529
530| 参数项 | 描述 |
531| -- | -- |
532| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
533
534### OH_Drawing_CanvasGetSaveCount()
535
536```
537uint32_t OH_Drawing_CanvasGetSaveCount(OH_Drawing_Canvas* canvas)
538```
539
540**描述**
541
542用于获取栈中保存的画布状态(画布矩阵)的数量。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
543
544**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
545
546**起始版本:** 11
547
548
549**参数:**
550
551| 参数项 | 描述 |
552| -- | -- |
553| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
554
555**返回:**
556
557| 类型 | 说明 |
558| -- | -- |
559| uint32_t | 函数会返回一个32位的值描述画布状态(画布矩阵)的数量,画布初始状态数量为1。 |
560
561### OH_Drawing_CanvasRestoreToCount()
562
563```
564void OH_Drawing_CanvasRestoreToCount(OH_Drawing_Canvas* canvas, uint32_t saveCount)
565```
566
567**描述**
568
569用于恢复到指定数量的画布状态(画布矩阵)。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
570
571**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
572
573**起始版本:** 11
574
575
576**参数:**
577
578| 参数项 | 描述 |
579| -- | -- |
580| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
581| uint32_t saveCount | 要恢复的画布状态深度。小于等于1时,恢复为初始状态;大于已保存的画布状态数量时,不执行任何操作。 |
582
583### OH_Drawing_CanvasDrawLine()
584
585```
586void OH_Drawing_CanvasDrawLine(OH_Drawing_Canvas* canvas, float x1, float y1, float x2, float y2)
587```
588
589**描述**
590
591用于画一条直线段。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
592
593**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
594
595**起始版本:** 8
596
597
598**参数:**
599
600| 参数项 | 描述 |
601| -- | -- |
602| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
603| float x1 | 线段起始点的横坐标。 |
604| float y1 | 线段起始点的纵坐标。 |
605| float x2 | 线段结束点的横坐标。 |
606| float y2 | 线段结束点的纵坐标。 |
607
608### OH_Drawing_CanvasDrawPath()
609
610```
611void OH_Drawing_CanvasDrawPath(OH_Drawing_Canvas* canvas, const OH_Drawing_Path* path)
612```
613
614**描述**
615
616用于画一个自定义路径。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、path任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
617
618**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
619
620**起始版本:** 8
621
622
623**参数:**
624
625| 参数项 | 描述 |
626| -- | -- |
627| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
628| const [OH_Drawing_Path](capi-drawing-oh-drawing-path.md)* path | 指向路径对象的指针。 |
629
630### OH_Drawing_CanvasDrawPixelMapNine()
631
632```
633OH_Drawing_ErrorCode OH_Drawing_CanvasDrawPixelMapNine(OH_Drawing_Canvas* canvas, OH_Drawing_PixelMap* pixelMap,const OH_Drawing_Rect* center, const OH_Drawing_Rect* dst, OH_Drawing_FilterMode mode)
634```
635
636**描述**
637
638通过绘制两条水平线和两条垂直线将像素图分割成9个部分:四个边,四个角和中心。<br>若角落的4个区域尺寸不超过目标矩形,则会在不缩放的情况下被绘制在目标矩形,反之则会按比例缩放绘制在目标矩形。<br>如果还有剩余空间,剩下的5个区域会通过拉伸或压缩来绘制,以便能够完全覆盖目标矩形。
639
640**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
641
642**起始版本:** 18
643
644
645**参数:**
646
647| 参数项 | 描述 |
648| -- | -- |
649| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
650| [OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)* pixelMap | 指向像素图[OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)的指针。 |
651| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* center | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针,表示分割像素图的中心矩形。矩形四条边所在的直线将像素图分成了9个部分。 |
652| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* dst | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针,表示画布上的目标区域。 |
653| [OH_Drawing_FilterMode](capi-drawing-sampling-options-h.md#oh_drawing_filtermode) mode | 过滤模式枚举[OH_Drawing_FilterMode](capi-drawing-sampling-options-h.md#oh_drawing_filtermode)。 |
654
655**返回:**
656
657| 类型 | 说明 |
658| -- | -- |
659| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、pixelMap或dst为空。 |
660
661### OH_Drawing_CanvasDrawPixelMapRect()
662
663```
664void 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)
665```
666
667**描述**
668
669用于将像素图的指定区域绘制到画布的指定区域。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、pixelMap、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
670
671**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
672
673**起始版本:** 12
674
675
676**参数:**
677
678| 参数项 | 描述 |
679| -- | -- |
680| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
681| [OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)* pixelMap | 指向像素图[OH_Drawing_PixelMap](capi-drawing-oh-drawing-pixelmap.md)的指针。 |
682| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* src | 像素图指定矩形区域,为NULL将指定整个像素图区域。 |
683| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* dst | 目标画布指定矩形区域。 |
684| const [OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)* samplingOptions | 指向采样选项对象[OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)的指针,为NULL将使用默认采样选项。 |
685
686### OH_Drawing_CanvasDrawBackground()
687
688```
689void OH_Drawing_CanvasDrawBackground(OH_Drawing_Canvas* canvas, const OH_Drawing_Brush* brush)
690```
691
692**描述**
693
694用于画一个背景,此背景以画刷填充。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、brush任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
695
696**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
697
698**起始版本:** 12
699
700
701**参数:**
702
703| 参数项 | 描述 |
704| -- | -- |
705| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
706| const [OH_Drawing_Brush](capi-drawing-oh-drawing-brush.md)* brush | 指向画刷对象的指针。 |
707
708### OH_Drawing_CanvasDrawRegion()
709
710```
711void OH_Drawing_CanvasDrawRegion(OH_Drawing_Canvas* canvas, const OH_Drawing_Region* region)
712```
713
714**描述**
715
716用于画一块区域。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、region任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
717
718**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
719
720**起始版本:** 12
721
722
723**参数:**
724
725| 参数项 | 描述 |
726| -- | -- |
727| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
728| const [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象的指针。 |
729
730### OH_Drawing_CanvasDrawPoint()
731
732```
733OH_Drawing_ErrorCode OH_Drawing_CanvasDrawPoint(OH_Drawing_Canvas* canvas, const OH_Drawing_Point2D* point)
734```
735
736**描述**
737
738用于画一个点。
739
740**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
741
742**起始版本:** 12
743
744
745**参数:**
746
747| 参数项 | 描述 |
748| -- | -- |
749| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
750| const [OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)* point | 指向点对象[OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)的指针。 |
751
752**返回:**
753
754| 类型 | 说明 |
755| -- | -- |
756| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者point为空。 |
757
758### OH_Drawing_CanvasDrawPoints()
759
760```
761void OH_Drawing_CanvasDrawPoints(OH_Drawing_Canvas* canvas, OH_Drawing_PointMode mode,uint32_t count, const OH_Drawing_Point2D* point2D)
762```
763
764**描述**
765
766用于画多个点,绘制方式分为绘制单独的点、绘制成线段或绘制成开放多边形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、point2D任意一个为NULL或者count等于0时返回OH_DRAWING_ERROR_INVALID_PARAMETER;mode不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
767
768**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
769
770**起始版本:** 12
771
772
773**参数:**
774
775| 参数项 | 描述 |
776| -- | -- |
777| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
778| [OH_Drawing_PointMode](#oh_drawing_pointmode) mode | 绘制多个点的方式,支持方式参考[OH_Drawing_PointMode](capi-drawing-canvas-h.md#oh_drawing_pointmode)。 |
779| uint32_t count | 点的数量,即点数组中点的个数。 |
780| const [OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)* point2D | 指向多个点的数组。 |
781
782### OH_Drawing_CanvasDrawBitmap()
783
784```
785void OH_Drawing_CanvasDrawBitmap(OH_Drawing_Canvas* canvas, const OH_Drawing_Bitmap* bitmap, float left, float top)
786```
787
788**描述**
789
790用于画一个位图,位图又称为点阵图像、像素图或栅格图像,是由像素(图片元素)的单个点组成。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
791
792**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
793
794**起始版本:** 11
795
796
797**参数:**
798
799| 参数项 | 描述 |
800| -- | -- |
801| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
802| const [OH_Drawing_Bitmap](capi-drawing-oh-drawing-bitmap.md)* bitmap | 指向位图对象的指针。 |
803| float left | 位图对象左上角的横坐标。 |
804| float top | 位图对象左上角的纵坐标。 |
805
806### OH_Drawing_CanvasDrawBitmapRect()
807
808```
809void OH_Drawing_CanvasDrawBitmapRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Bitmap* bitmap,const OH_Drawing_Rect* src, const OH_Drawing_Rect* dst, const OH_Drawing_SamplingOptions* samplingOptions)
810```
811
812**描述**
813
814将位图的指定区域绘制到画布的指定区域。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
815
816**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
817
818**起始版本:** 12
819
820
821**参数:**
822
823| 参数项 | 描述 |
824| -- | -- |
825| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
826| const [OH_Drawing_Bitmap](capi-drawing-oh-drawing-bitmap.md)* bitmap | 指向位图对象[OH_Drawing_Bitmap](capi-drawing-oh-drawing-bitmap.md)的指针。 |
827| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* src | 源位图指定矩形区域,为NULL将指定整个源位图区域。 |
828| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* dst | 目标画布指定矩形区域。 |
829| const [OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)* samplingOptions | 指向采样选项对象[OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)的指针,为NULL将使用默认采样选项。 |
830
831### OH_Drawing_CanvasDrawRect()
832
833```
834void OH_Drawing_CanvasDrawRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect)
835```
836
837**描述**
838
839用于画一个矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、OH_Drawing_Rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
840
841**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
842
843**起始版本:** 11
844
845
846**参数:**
847
848| 参数项 | 描述 |
849| -- | -- |
850| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
851| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象的指针。 |
852
853### OH_Drawing_CanvasDrawCircle()
854
855```
856void OH_Drawing_CanvasDrawCircle(OH_Drawing_Canvas* canvas, const OH_Drawing_Point* point, float radius)
857```
858
859**描述**
860
861用于画一个圆形。本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。canvas、point任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>radius小于等于0时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
862
863**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
864
865**起始版本:** 11
866
867
868**参数:**
869
870| 参数项 | 描述 |
871| -- | -- |
872| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
873| const [OH_Drawing_Point](capi-drawing-oh-drawing-point.md)* point | 指向坐标点对象的指针,表示圆心。 |
874| float radius | 圆形的半径,小于等于0时无效。 |
875
876### OH_Drawing_CanvasDrawColor()
877
878```
879OH_Drawing_ErrorCode OH_Drawing_CanvasDrawColor(OH_Drawing_Canvas* canvas, uint32_t color,OH_Drawing_BlendMode blendMode)
880```
881
882**描述**
883
884用于使用指定的颜色及混合模式来填充整个画布。
885
886**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
887
888**起始版本:** 12
889
890
891**参数:**
892
893| 参数项 | 描述 |
894| -- | -- |
895| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
896| uint32_t color | 表示指定的颜色,用一个32位(ARGB)的变量表示。 |
897| [OH_Drawing_BlendMode](capi-drawing-types-h.md#oh_drawing_blendmode) blendMode | 表示指定的混合模式。 |
898
899**返回:**
900
901| 类型 | 说明 |
902| -- | -- |
903| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas为空。<br> 返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE,表示blendMode不在枚举范围内。 |
904
905### OH_Drawing_CanvasDrawOval()
906
907```
908void OH_Drawing_CanvasDrawOval(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect)
909```
910
911**描述**
912
913用于画一个椭圆。本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
914
915**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
916
917**起始版本:** 11
918
919
920**参数:**
921
922| 参数项 | 描述 |
923| -- | -- |
924| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
925| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象的指针。 |
926
927### OH_Drawing_CanvasDrawArc()
928
929```
930void OH_Drawing_CanvasDrawArc(OH_Drawing_Canvas* canvas,const OH_Drawing_Rect* rect, float startAngle, float sweepAngle)
931```
932
933**描述**
934
935用于画一个弧。当扫描角度的绝对值大于360度时,本接口绘制的是一个椭圆。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
936
937**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
938
939**起始版本:** 11
940
941
942**参数:**
943
944| 参数项 | 描述 |
945| -- | -- |
946| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
947| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象的指针。 |
948| float startAngle | 弧的起始角度,0度时起始点位于椭圆的右端点,正数时以顺时针方向放置起始点,负数时以逆时针方向放置起始点。 |
949| float sweepAngle | 弧的扫描角度,正数时顺时针扫描,负数时逆时针扫描。它的有效范围在-360度到360度之间,当绝对值大于360度时,该函数绘制的是一个椭圆。 |
950
951### OH_Drawing_CanvasDrawArcWithCenter()
952
953```
954OH_Drawing_ErrorCode OH_Drawing_CanvasDrawArcWithCenter(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect,float startAngle, float sweepAngle, bool useCenter)
955```
956
957**描述**
958
959绘制一段圆弧。该方法允许指定圆弧的起始角度、扫描角度以及圆弧的起点和终点是否连接圆弧的中心点。
960
961**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
962
963**起始版本:** 18
964
965
966**参数:**
967
968| 参数项 | 描述 |
969| -- | -- |
970| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
971| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针。 |
972| float startAngle | 弧的起始角度,单位为度,该参数为浮点数。0度时起始点位于椭圆的右端点,为正数时以顺时针方向放置起始点,为负数时以逆时针方向放置起始点。 |
973| float sweepAngle | 弧的扫描角度,单位为度,该参数为浮点数。为正数时顺时针扫描,为负数时逆时针扫描。扫描角度可以超过360度,将绘制一个完整的椭圆。 |
974| bool useCenter | 表示绘制时弧形的起点和终点是否连接弧形的中心点。true表示连接,false表示不连接。 |
975
976**返回:**
977
978| 类型 | 说明 |
979| -- | -- |
980| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者rect为空。 |
981
982### OH_Drawing_CanvasDrawRoundRect()
983
984```
985void OH_Drawing_CanvasDrawRoundRect(OH_Drawing_Canvas* canvas, const OH_Drawing_RoundRect* roundRect)
986```
987
988**描述**
989
990用于画一个圆角矩形。本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。canvas、roundRect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
991
992**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
993
994**起始版本:** 11
995
996
997**参数:**
998
999| 参数项 | 描述 |
1000| -- | -- |
1001| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1002| const [OH_Drawing_RoundRect](capi-drawing-oh-drawing-roundrect.md)* roundRect | 指向圆角矩形对象的指针。 |
1003
1004### OH_Drawing_CanvasDrawNestedRoundRect()
1005
1006```
1007OH_Drawing_ErrorCode OH_Drawing_CanvasDrawNestedRoundRect(OH_Drawing_Canvas* canvas, const OH_Drawing_RoundRect* outer,const OH_Drawing_RoundRect* inner)
1008```
1009
1010**描述**
1011
1012绘制两个嵌套的圆角矩形,外部矩形边界必须包含内部矩形边界,否则无绘制效果。
1013
1014**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1015
1016**起始版本:** 18
1017
1018
1019**参数:**
1020
1021| 参数项 | 描述 |
1022| -- | -- |
1023| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1024| const [OH_Drawing_RoundRect](capi-drawing-oh-drawing-roundrect.md)* outer | 指向圆角矩形对象[OH_Drawing_RoundRect](capi-drawing-oh-drawing-roundrect.md)的指针,表示外部圆角矩形边界。 |
1025| const [OH_Drawing_RoundRect](capi-drawing-oh-drawing-roundrect.md)* inner | 指向圆角矩形对象[OH_Drawing_RoundRect](capi-drawing-oh-drawing-roundrect.md)的指针,表示内部圆角矩形边界。 |
1026
1027**返回:**
1028
1029| 类型 | 说明 |
1030| -- | -- |
1031| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、outer或者inner为空。 |
1032
1033### OH_Drawing_CanvasDrawSingleCharacter()
1034
1035```
1036OH_Drawing_ErrorCode OH_Drawing_CanvasDrawSingleCharacter(OH_Drawing_Canvas* canvas, const char* str,const OH_Drawing_Font* font, float x, float y)
1037```
1038
1039**描述**
1040
1041用于绘制单个字符。当前字型中的字体不支持待绘制字符时,退化到使用系统字体绘制字符。
1042
1043**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1044
1045**起始版本:** 12
1046
1047
1048**参数:**
1049
1050| 参数项 | 描述 |
1051| -- | -- |
1052| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1053| const char* str | 待绘制的单个字符。可以传入字符串,但只会以UTF-8编码解析并绘制字符串中的首个字符。 |
1054| const [OH_Drawing_Font](capi-drawing-oh-drawing-font.md)* font | 指向字型对象[OH_Drawing_Font](capi-drawing-oh-drawing-font.md)的指针。 |
1055| float x | 字符对象基线左端点(靠近字符左下角)的横坐标。 |
1056| float y | 字符对象基线左端点(靠近字符左下角)的纵坐标。 |
1057
1058**返回:**
1059
1060| 类型 | 说明 |
1061| -- | -- |
1062| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、str、font任意一个为NULL或者str的长度为0。 |
1063
1064### OH_Drawing_CanvasDrawTextBlob()
1065
1066```
1067void OH_Drawing_CanvasDrawTextBlob(OH_Drawing_Canvas* canvas, const OH_Drawing_TextBlob* textBlob, float x, float y)
1068```
1069
1070**描述**
1071
1072用于画一段文字。若构造OH_Drawing_TextBlob的字体不支持待绘制字符,则该部分字符无法绘制。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、textBlob任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1073
1074**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1075
1076**起始版本:** 11
1077
1078
1079**参数:**
1080
1081| 参数项 | 描述 |
1082| -- | -- |
1083| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1084| const [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* textBlob | 指向文本对象的指针。 |
1085| float x | 文本对象基线左端点(靠近文本左下角)的横坐标。 |
1086| float y | 文本对象基线左端点(靠近文本左下角)的纵坐标。 |
1087
1088### OH_Drawing_CanvasClipRect()
1089
1090```
1091void OH_Drawing_CanvasClipRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect,OH_Drawing_CanvasClipOp clipOp, bool doAntiAlias)
1092```
1093
1094**描述**
1095
1096用于裁剪一个矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>clipOp不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
1097
1098**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1099
1100**起始版本:** 11
1101
1102
1103**参数:**
1104
1105| 参数项 | 描述 |
1106| -- | -- |
1107| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1108| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象的指针。 |
1109| [OH_Drawing_CanvasClipOp](#oh_drawing_canvasclipop) clipOp | 裁剪方式。支持可选的具体裁剪方式可见@{link OH_Drawing_CanvasClipOp}枚举。 |
1110| bool doAntiAlias | 值为true则做抗锯齿处理,反之不做。 |
1111
1112### OH_Drawing_CanvasClipRoundRect()
1113
1114```
1115void OH_Drawing_CanvasClipRoundRect(OH_Drawing_Canvas* canvas, const OH_Drawing_RoundRect* roundRect,OH_Drawing_CanvasClipOp clipOp, bool doAntiAlias)
1116```
1117
1118**描述**
1119
1120用于裁剪一个圆角矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、roundRect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>clipOp不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
1121
1122**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1123
1124**起始版本:** 12
1125
1126
1127**参数:**
1128
1129| 参数项 | 描述 |
1130| -- | -- |
1131| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1132| const [OH_Drawing_RoundRect](capi-drawing-oh-drawing-roundrect.md)* roundRect | 指向圆角矩形对象的指针。 |
1133| [OH_Drawing_CanvasClipOp](#oh_drawing_canvasclipop) clipOp | 裁剪方式。支持可选的具体裁剪方式可见@{link OH_Drawing_CanvasClipOp}枚举。 |
1134| bool doAntiAlias | 表示是否需要做抗锯齿处理,值为true时为需要,为false时为不需要。 |
1135
1136### OH_Drawing_CanvasClipPath()
1137
1138```
1139void OH_Drawing_CanvasClipPath(OH_Drawing_Canvas* canvas, const OH_Drawing_Path* path,OH_Drawing_CanvasClipOp clipOp, bool doAntiAlias)
1140```
1141
1142**描述**
1143
1144用于裁剪一个自定义路径。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、path任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>clipOp不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
1145
1146**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1147
1148**起始版本:** 11
1149
1150
1151**参数:**
1152
1153| 参数项 | 描述 |
1154| -- | -- |
1155| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1156| const [OH_Drawing_Path](capi-drawing-oh-drawing-path.md)* path | 指向路径对象的指针。 |
1157| [OH_Drawing_CanvasClipOp](#oh_drawing_canvasclipop) clipOp | 裁剪方式。支持可选的具体裁剪方式可见@{link OH_Drawing_CanvasClipOp}枚举。 |
1158| bool doAntiAlias | 真为抗锯齿,假则不做抗锯齿处理。 |
1159
1160### OH_Drawing_CanvasClipRegion()
1161
1162```
1163OH_Drawing_ErrorCode OH_Drawing_CanvasClipRegion(OH_Drawing_Canvas* canvas, const OH_Drawing_Region* region,OH_Drawing_CanvasClipOp clipOp)
1164```
1165
1166**描述**
1167
1168用于裁剪一个区域。
1169
1170**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1171
1172**起始版本:** 12
1173
1174
1175**参数:**
1176
1177| 参数项 | 描述 |
1178| -- | -- |
1179| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1180| const [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 |
1181| [OH_Drawing_CanvasClipOp](#oh_drawing_canvasclipop) clipOp | 表示裁剪类型。支持可选的具体裁剪方式可见@{link OH_Drawing_CanvasClipOp}枚举。 |
1182
1183**返回:**
1184
1185| 类型 | 说明 |
1186| -- | -- |
1187| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者region为空。<br> 返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE,表示clipOp不在枚举范围内。 |
1188
1189### OH_Drawing_CanvasRotate()
1190
1191```
1192void OH_Drawing_CanvasRotate(OH_Drawing_Canvas* canvas, float degrees, float px, float py)
1193```
1194
1195**描述**
1196
1197用于画布旋转一定的角度,正数表示顺时针旋转,负数反之。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1198
1199**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1200
1201**起始版本:** 11
1202
1203
1204**参数:**
1205
1206| 参数项 | 描述 |
1207| -- | -- |
1208| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1209| float degrees | 旋转角度。 |
1210| float px | 旋转中心的横坐标。 |
1211| float py | 旋转中心的纵坐标。 |
1212
1213### OH_Drawing_CanvasTranslate()
1214
1215```
1216void OH_Drawing_CanvasTranslate(OH_Drawing_Canvas* canvas, float dx, float dy)
1217```
1218
1219**描述**
1220
1221用于平移画布一段距离。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1222
1223**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1224
1225**起始版本:** 11
1226
1227
1228**参数:**
1229
1230| 参数项 | 描述 |
1231| -- | -- |
1232| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1233| float dx | 轴方向的移动距离。 |
1234| float dy | 轴方向的移动距离。 |
1235
1236### OH_Drawing_CanvasScale()
1237
1238```
1239void OH_Drawing_CanvasScale(OH_Drawing_Canvas* canvas, float sx, float sy)
1240```
1241
1242**描述**
1243
1244用于画布缩放。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1245
1246**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1247
1248**起始版本:** 11
1249
1250
1251**参数:**
1252
1253| 参数项 | 描述 |
1254| -- | -- |
1255| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1256| float sx | 轴方向的缩放比例。 |
1257| float sy | 轴方向的缩放比例。 |
1258
1259### OH_Drawing_CanvasSkew()
1260
1261```
1262void OH_Drawing_CanvasSkew(OH_Drawing_Canvas* canvas, float sx, float sy)
1263```
1264
1265**描述**
1266
1267用于画布倾斜变换。等同于将当前画布矩阵左乘(premultiply)倾斜变换矩阵,并应用到画布上。其中倾斜变换矩阵为:<br>|1 sx 0|  <br>|sy 1 0|  <br>|0  0 1|。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1268
1269**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1270
1271**起始版本:** 12
1272
1273
1274**参数:**
1275
1276| 参数项 | 描述 |
1277| -- | -- |
1278| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1279| float sx | 沿x轴的倾斜量。正值会使绘制沿y轴增量方向向右倾斜;负值会使绘制沿y轴增量方向向左倾斜。 |
1280| float sy | 沿y轴的倾斜量。正值会使绘制沿x轴增量方向向下倾斜;负值会使绘制沿x轴增量方向向上倾斜。 |
1281
1282### OH_Drawing_CanvasGetWidth()
1283
1284```
1285int32_t OH_Drawing_CanvasGetWidth(OH_Drawing_Canvas* canvas)
1286```
1287
1288**描述**
1289
1290获取画布宽度。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1291
1292**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1293
1294**起始版本:** 12
1295
1296
1297**参数:**
1298
1299| 参数项 | 描述 |
1300| -- | -- |
1301| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1302
1303**返回:**
1304
1305| 类型 | 说明 |
1306| -- | -- |
1307| int32_t | 函数返回画布宽度,单位为像素。 |
1308
1309### OH_Drawing_CanvasGetHeight()
1310
1311```
1312int32_t OH_Drawing_CanvasGetHeight(OH_Drawing_Canvas* canvas)
1313```
1314
1315**描述**
1316
1317获取画布高度。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1318
1319**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1320
1321**起始版本:** 12
1322
1323
1324**参数:**
1325
1326| 参数项 | 描述 |
1327| -- | -- |
1328| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1329
1330**返回:**
1331
1332| 类型 | 说明 |
1333| -- | -- |
1334| int32_t | 函数返回画布高度,单位为像素。 |
1335
1336### OH_Drawing_CanvasGetLocalClipBounds()
1337
1338```
1339void OH_Drawing_CanvasGetLocalClipBounds(OH_Drawing_Canvas* canvas, OH_Drawing_Rect* rect)
1340```
1341
1342**描述**
1343
1344获取画布裁剪区域的边界。该接口不可用于录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1345
1346**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1347
1348**起始版本:** 12
1349
1350
1351**参数:**
1352
1353| 参数项 | 描述 |
1354| -- | -- |
1355| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1356| [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针,开发者可调用[OH_Drawing_RectCreate](capi-drawing-rect-h.md#oh_drawing_rectcreate)接口创建。 |
1357
1358### OH_Drawing_CanvasGetTotalMatrix()
1359
1360```
1361void OH_Drawing_CanvasGetTotalMatrix(OH_Drawing_Canvas* canvas, OH_Drawing_Matrix* matrix)
1362```
1363
1364**描述**
1365
1366获取画布3x3矩阵。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、matrix任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1367
1368**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1369
1370**起始版本:** 12
1371
1372
1373**参数:**
1374
1375| 参数项 | 描述 |
1376| -- | -- |
1377| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1378| [OH_Drawing_Matrix](capi-drawing-oh-drawing-matrix.md)* matrix | 指向矩阵对象[OH_Drawing_Matrix](capi-drawing-oh-drawing-matrix.md)的指针,开发者可调用[OH_Drawing_MatrixCreate](capi-drawing-matrix-h.md#oh_drawing_matrixcreate)接口创建。 |
1379
1380### OH_Drawing_CanvasConcatMatrix()
1381
1382```
1383void OH_Drawing_CanvasConcatMatrix(OH_Drawing_Canvas* canvas, OH_Drawing_Matrix* matrix)
1384```
1385
1386**描述**
1387
1388画布现有矩阵左乘以传入矩阵,不影响该接口之前的绘制操作。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、matrix任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1389
1390**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1391
1392**起始版本:** 12
1393
1394
1395**参数:**
1396
1397| 参数项 | 描述 |
1398| -- | -- |
1399| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1400| [OH_Drawing_Matrix](capi-drawing-oh-drawing-matrix.md)* matrix | 指向矩阵对象[OH_Drawing_Matrix](capi-drawing-oh-drawing-matrix.md)的指针。 |
1401
1402### OH_Drawing_CanvasDrawShadow()
1403
1404```
1405void OH_Drawing_CanvasDrawShadow(OH_Drawing_Canvas* canvas, OH_Drawing_Path* path, OH_Drawing_Point3D planeParams,OH_Drawing_Point3D devLightPos, float lightRadius, uint32_t ambientColor, uint32_t spotColor,OH_Drawing_CanvasShadowFlags flag)
1406```
1407
1408**描述**
1409
1410绘制射灯类型阴影,使用路径描述环境光阴影的轮廓。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、path任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>flag不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
1411
1412**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1413
1414**起始版本:** 12
1415
1416
1417**参数:**
1418
1419| 参数项 | 描述 |
1420| -- | -- |
1421| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1422| [OH_Drawing_Path](capi-drawing-oh-drawing-path.md)* path | 指向路径对象[OH_Drawing_Path](capi-drawing-oh-drawing-path.md)的指针,用于生成阴影。 |
1423| [OH_Drawing_Point3D](capi-drawing-oh-drawing-point3d.md) planeParams | 表示遮挡物相对于画布在Z轴上的偏移量,其值取决于x与y坐标。 |
1424| [OH_Drawing_Point3D](capi-drawing-oh-drawing-point3d.md) devLightPos | 光线相对于画布的位置。 |
1425| float lightRadius | 光源半径,需大于或等于0。 |
1426| uint32_t ambientColor | 环境阴影颜色,用一个32位(ARGB)的变量表示。 |
1427| uint32_t spotColor | 点阴影颜色,用一个32位(ARGB)的变量表示。 |
1428| [OH_Drawing_CanvasShadowFlags](#oh_drawing_canvasshadowflags) flag | 阴影标志枚举[OH_Drawing_CanvasShadowFlags](capi-drawing-canvas-h.md#oh_drawing_canvasshadowflags)。 |
1429
1430### OH_Drawing_CanvasClear()
1431
1432```
1433void OH_Drawing_CanvasClear(OH_Drawing_Canvas* canvas, uint32_t color)
1434```
1435
1436**描述**
1437
1438用于使用指定颜色去清空画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1439
1440**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1441
1442**起始版本:** 8
1443
1444
1445**参数:**
1446
1447| 参数项 | 描述 |
1448| -- | -- |
1449| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1450| uint32_t color | 描述颜色的32位(ARGB)变量。 |
1451
1452### OH_Drawing_CanvasSetMatrix()
1453
1454```
1455void OH_Drawing_CanvasSetMatrix(OH_Drawing_Canvas* canvas, OH_Drawing_Matrix* matrix)
1456```
1457
1458**描述**
1459
1460设置画布的矩阵状态。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、matrix任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1461
1462**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1463
1464**起始版本:** 12
1465
1466
1467**参数:**
1468
1469| 参数项 | 描述 |
1470| -- | -- |
1471| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1472| [OH_Drawing_Matrix](capi-drawing-oh-drawing-matrix.md)* matrix | 指向矩阵对象[OH_Drawing_Matrix](capi-drawing-oh-drawing-matrix.md)的指针,开发者可调用[OH_Drawing_MatrixCreate](capi-drawing-matrix-h.md#oh_drawing_matrixcreate)接口创建。 |
1473
1474### OH_Drawing_CanvasResetMatrix()
1475
1476```
1477void OH_Drawing_CanvasResetMatrix(OH_Drawing_Canvas* canvas)
1478```
1479
1480**描述**
1481
1482重置当前画布的矩阵为单位矩阵。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1483
1484**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1485
1486**起始版本:** 12
1487
1488
1489**参数:**
1490
1491| 参数项 | 描述 |
1492| -- | -- |
1493| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1494
1495### OH_Drawing_CanvasDrawImageRectWithSrc()
1496
1497```
1498void OH_Drawing_CanvasDrawImageRectWithSrc(OH_Drawing_Canvas* canvas, const OH_Drawing_Image* image,const OH_Drawing_Rect* src, const OH_Drawing_Rect* dst, const OH_Drawing_SamplingOptions* samplingOptions,OH_Drawing_SrcRectConstraint srcRectConstraint)
1499```
1500
1501**描述**
1502
1503将图片绘制到画布的指定区域上,源矩形选定的区域会缩放平移到目标矩形。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、image、src、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1504
1505**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1506
1507**起始版本:** 12
1508
1509
1510**参数:**
1511
1512| 参数项 | 描述 |
1513| -- | -- |
1514| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1515| const [OH_Drawing_Image](capi-drawing-oh-drawing-image.md)* image | 指向图片对象[OH_Drawing_Image](capi-drawing-oh-drawing-image.md)的指针。 |
1516| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* src | 指向源矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针。 |
1517| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* dst | 指向目标矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针。 |
1518| const [OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)* samplingOptions | 指向采样选项对象[OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)的指针,为NULL将使用默认采样选项。 |
1519| [OH_Drawing_SrcRectConstraint](#oh_drawing_srcrectconstraint) srcRectConstraint | 约束类型,支持可选的具体类型可见[OH_Drawing_SrcRectConstraint](capi-drawing-canvas-h.md#oh_drawing_srcrectconstraint)枚举。 |
1520
1521### OH_Drawing_CanvasDrawImageRect()
1522
1523```
1524void OH_Drawing_CanvasDrawImageRect(OH_Drawing_Canvas* canvas, OH_Drawing_Image* image,OH_Drawing_Rect* rect, OH_Drawing_SamplingOptions* samplingOptions)
1525```
1526
1527**描述**
1528
1529将图片绘制到画布的指定区域上。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、image、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1530
1531**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1532
1533**起始版本:** 12
1534
1535
1536**参数:**
1537
1538| 参数项 | 描述 |
1539| -- | -- |
1540| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1541| [OH_Drawing_Image](capi-drawing-oh-drawing-image.md)* image | 指向图片对象[OH_Drawing_Image](capi-drawing-oh-drawing-image.md)的指针。 |
1542| [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针。 |
1543| [OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)* samplingOptions | 指向采样选项对象[OH_Drawing_SamplingOptions](capi-drawing-oh-drawing-samplingoptions.md)的指针,为NULL将使用默认采样选项。 |
1544
1545### OH_Drawing_CanvasDrawVertices()
1546
1547```
1548void OH_Drawing_CanvasDrawVertices(OH_Drawing_Canvas* canvas, OH_Drawing_VertexMode vertexMmode,int32_t vertexCount, const OH_Drawing_Point2D* positions, const OH_Drawing_Point2D* texs,const uint32_t* colors, int32_t indexCount, const uint16_t* indices, OH_Drawing_BlendMode mode)
1549```
1550
1551**描述**
1552
1553用于画顶点数组描述的三角网格。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas或positions为NULL、vertexCount值小于3、indexCount值小于3且不为0,存在以上任意一种情况时设置错误码为OH_DRAWING_ERROR_INVALID_PARAMETER;<br>vertexMmode、mode任意一个不在枚举范围内时设置错误码为OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
1554
1555**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1556
1557**起始版本:** 12
1558
1559
1560**参数:**
1561
1562| 参数项 | 描述 |
1563| -- | -- |
1564| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象的指针。 |
1565| [OH_Drawing_VertexMode](#oh_drawing_vertexmode) vertexMmode | 绘制顶点的连接方式,支持方式参考[OH_Drawing_VertexMode](capi-drawing-canvas-h.md#oh_drawing_vertexmode)。 |
1566| int32_t vertexCount | 顶点数组元素的数量,值必须大于等于3。 |
1567| const [OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)* positions | 描述顶点位置的数组指针,不能为空,其长度必须等于vertexCount。 |
1568| const [OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)* texs | 描述顶点对应纹理空间坐标的数组指针,可以为空,若不为空其长度必须等于vertexCount。 |
1569| const uint32_t* colors | 描述顶点对应颜色的数组指针,用于在三角形中进行插值,可以为空,若不为空其长度必须等于vertexCount。 |
1570| int32_t indexCount | 索引的数量,可以为0,若不为0则值必须大于等于3。 |
1571| const uint16_t* indices | 描述顶点对应索引的数组指针,可以为空,若不为空其长度必须等于indexCount。 |
1572| [OH_Drawing_BlendMode](capi-drawing-types-h.md#oh_drawing_blendmode) mode | 混合模式枚举,支持方式参考[OH_Drawing_BlendMode](capi-drawing-types-h.md#oh_drawing_blendmode)。 |
1573
1574### OH_Drawing_CanvasReadPixels()
1575
1576```
1577bool OH_Drawing_CanvasReadPixels(OH_Drawing_Canvas* canvas, OH_Drawing_Image_Info* imageInfo,void* dstPixels, uint32_t dstRowBytes, int32_t srcX, int32_t srcY)
1578```
1579
1580**描述**
1581
1582从画布中拷贝像素数据到指定地址。该接口不可用于录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、imageInfo、dstPixels任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1583
1584**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1585
1586**起始版本:** 12
1587
1588
1589**参数:**
1590
1591| 参数项 | 描述 |
1592| -- | -- |
1593| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1594| [OH_Drawing_Image_Info](capi-drawing-oh-drawing-image-info.md)* imageInfo | 指向图片信息[OH_Drawing_Image_Info](capi-drawing-oh-drawing-image-info.md)的指针。 |
1595| void* dstPixels | 目标像素存储首地址。 |
1596| uint32_t dstRowBytes | 一行像素的大小,小于等于0时无效。 |
1597| int32_t srcX | 画布像素的x轴偏移量,单位为像素。 |
1598| int32_t srcY | 画布像素的y轴偏移量,单位为像素。 |
1599
1600**返回:**
1601
1602| 类型 | 说明 |
1603| -- | -- |
1604| bool | 函数返回true表示像素成功拷贝到目标像素存储首地址,函数返回false表示拷贝失败。 |
1605
1606### OH_Drawing_CanvasReadPixelsToBitmap()
1607
1608```
1609bool OH_Drawing_CanvasReadPixelsToBitmap(OH_Drawing_Canvas* canvas,OH_Drawing_Bitmap* bitmap, int32_t srcX, int32_t srcY)
1610```
1611
1612**描述**
1613
1614从画布拷贝像素数据到位图中。该接口不可用于录制类型画布。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>canvas、bitmap任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
1615
1616**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1617
1618**起始版本:** 12
1619
1620
1621**参数:**
1622
1623| 参数项 | 描述 |
1624| -- | -- |
1625| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1626| [OH_Drawing_Bitmap](capi-drawing-oh-drawing-bitmap.md)* bitmap | 指向位图对象[OH_Drawing_Bitmap](capi-drawing-oh-drawing-bitmap.md)的指针。 |
1627| int32_t srcX | 画布像素的x轴偏移量,单位为像素。 |
1628| int32_t srcY | 画布像素的y轴偏移量,单位为像素。 |
1629
1630**返回:**
1631
1632| 类型 | 说明 |
1633| -- | -- |
1634| bool | 函数返回true表示像素成功拷贝到位图,函数返回false表示拷贝失败。 |
1635
1636### OH_Drawing_CanvasIsClipEmpty()
1637
1638```
1639OH_Drawing_ErrorCode OH_Drawing_CanvasIsClipEmpty(OH_Drawing_Canvas* canvas, bool* isClipEmpty)
1640```
1641
1642**描述**
1643
1644用于判断裁剪后可绘制区域是否为空。<br>
1645
1646**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1647
1648**起始版本:** 12
1649
1650
1651**参数:**
1652
1653| 参数项 | 描述 |
1654| -- | -- |
1655| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1656| bool* isClipEmpty | 表示裁剪后可绘制区域是否为空。true表示为空,false表示不为空。 |
1657
1658**返回:**
1659
1660| 类型 | 说明 |
1661| -- | -- |
1662| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者isClipEmpty为空。 |
1663
1664### OH_Drawing_CanvasGetImageInfo()
1665
1666```
1667OH_Drawing_ErrorCode OH_Drawing_CanvasGetImageInfo(OH_Drawing_Canvas* canvas, OH_Drawing_Image_Info* imageInfo)
1668```
1669
1670**描述**
1671
1672用于获取画布的图像信息。<br>
1673
1674**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1675
1676**起始版本:** 12
1677
1678
1679**参数:**
1680
1681| 参数项 | 描述 |
1682| -- | -- |
1683| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1684| [OH_Drawing_Image_Info](capi-drawing-oh-drawing-image-info.md)* imageInfo | 指向图像信息对象[OH_Drawing_Image_Info](capi-drawing-oh-drawing-image-info.md)的指针。 |
1685
1686**返回:**
1687
1688| 类型 | 说明 |
1689| -- | -- |
1690| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者imageInfo为空。 |
1691
1692### OH_Drawing_CanvasDrawRecordCmd()
1693
1694```
1695OH_Drawing_ErrorCode OH_Drawing_CanvasDrawRecordCmd(OH_Drawing_Canvas* canvas, OH_Drawing_RecordCmd* recordCmd)
1696```
1697
1698**描述**
1699
1700用于绘制录制指令对象。<br>
1701
1702**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1703
1704**起始版本:** 13
1705
1706
1707**参数:**
1708
1709| 参数项 | 描述 |
1710| -- | -- |
1711| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针,仅支持录制类型画布。 |
1712| [OH_Drawing_RecordCmd](capi-drawing-oh-drawing-recordcmd.md)* recordCmd | 指向录制指令对象[OH_Drawing_RecordCmd](capi-drawing-oh-drawing-recordcmd.md)的指针。 |
1713
1714**返回:**
1715
1716| 类型 | 说明 |
1717| -- | -- |
1718| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas或者recordCmd为空。 |
1719
1720### OH_Drawing_CanvasQuickRejectPath()
1721
1722```
1723OH_Drawing_ErrorCode OH_Drawing_CanvasQuickRejectPath(OH_Drawing_Canvas* canvas, const OH_Drawing_Path* path,bool* quickReject)
1724```
1725
1726**描述**
1727
1728判断路径与画布区域是否不相交。画布区域包含边界。<br>
1729
1730**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1731
1732**起始版本:** 18
1733
1734
1735**参数:**
1736
1737| 参数项 | 描述 |
1738| -- | -- |
1739| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1740| const [OH_Drawing_Path](capi-drawing-oh-drawing-path.md)* path | 指向路径对象[OH_Drawing_Path](capi-drawing-oh-drawing-path.md)的指针。 |
1741| bool* quickReject | 表示路径与画布区域是否不相交,true表示路径与画布区域不相交,false表示路径与画布区域相交。 |
1742
1743**返回:**
1744
1745| 类型 | 说明 |
1746| -- | -- |
1747| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、path或者quickReject为空。 |
1748
1749### OH_Drawing_CanvasQuickRejectRect()
1750
1751```
1752OH_Drawing_ErrorCode OH_Drawing_CanvasQuickRejectRect(OH_Drawing_Canvas* canvas, const OH_Drawing_Rect* rect,bool* quickReject)
1753```
1754
1755**描述**
1756
1757判断矩形和画布区域是否不相交。画布区域包含边界。<br>
1758
1759**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
1760
1761**起始版本:** 18
1762
1763
1764**参数:**
1765
1766| 参数项 | 描述 |
1767| -- | -- |
1768| [OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)* canvas | 指向画布对象[OH_Drawing_Canvas](capi-drawing-oh-drawing-canvas.md)的指针。 |
1769| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针。 |
1770| bool* quickReject | 表示矩形与画布区域是否不相交,true表示矩形与画布区域不相交,false表示矩形与画布区域相交。 |
1771
1772**返回:**
1773
1774| 类型 | 说明 |
1775| -- | -- |
1776| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数canvas、rect或者quickReject为空。 |
1777
1778
1779