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