跳转至

paint_ext

paint_ext 模块提供画笔扩展功能,支持渐变填充、描边样式、图案填充等高级绘图属性设置。

Class Summary

OHOS::PaintExt

扩展 Paint 能力,支持硬件绘制的画笔类

Functions

OHOS::PaintExt

SetLinearGradient

void SetLinearGradient(const LinearGradient& linear, const ColorStop* stops, uint16_t stopCount)

功能说明

  • 核心用途:设置线性渐变的起止坐标与颜色停靠点
  • 设计目的:为画笔配置线性渐变绘制能力
  • 使用场景:需要沿直线方向进行颜色渐变绘制时调用

入参

名称 参数类型 详细说明 约束取值范围
linear const LinearGradient& 线性渐变参数,入参只读引用,不修改所指对象 -
stops const ColorStop* 颜色停靠点数组指针,入参只读指针,不修改所指对象 可为 nullptr;不为 nullptr 时指向有效内存
stopCount uint16_t 颜色停靠点数量 0 ~ 65535

SetRadialGradient

void SetRadialGradient(const RadialGradient& radial, const ColorStop* stops, uint16_t stopCount)

功能说明

  • 核心用途:设置径向渐变的圆心、半径与颜色停靠点
  • 设计目的:为画笔配置径向渐变绘制能力
  • 使用场景:需要以圆形辐射方式进行颜色渐变绘制时调用

入参

名称 参数类型 详细说明 约束取值范围
radial const RadialGradient& 径向渐变参数,入参只读引用,不修改所指对象 -
stops const ColorStop* 颜色停靠点数组指针,入参只读指针,不修改所指对象 可为 nullptr;不为 nullptr 时指向有效内存
stopCount uint16_t 颜色停靠点数量 0 ~ 65535

SetSweepGradient

void SetSweepGradient(const SweepGradient& sweep, const ColorStop* stops, uint16_t stopCount)

功能说明

  • 核心用途:设置扫描渐变的圆心、起始角度与颜色停靠点
  • 设计目的:为画笔配置扫描渐变绘制能力
  • 使用场景:需要以扇形扫描方式进行颜色渐变绘制时调用

入参

名称 参数类型 详细说明 约束取值范围
sweep const SweepGradient& 扫描渐变参数,入参只读引用,不修改所指对象 -
stops const ColorStop* 颜色停靠点数组指针,入参只读指针,不修改所指对象 可为 nullptr;不为 nullptr 时指向有效内存
stopCount uint16_t 颜色停靠点数量 0 ~ 65535

SetFillRule

void SetFillRule(const FillRule& fillRule)

功能说明

  • 核心用途:设置路径填充规则
  • 设计目的:控制路径区域内外判定策略
  • 使用场景:绘制复杂路径时需指定填充判定规则

入参

名称 参数类型 详细说明 约束取值范围
fillRule const FillRule& 填充规则枚举值,入参只读引用,不修改所指对象 FillRule

SetGradientSpread

void SetGradientSpread(const GradientSpread& gradientSpread)

功能说明

  • 核心用途:设置渐变扩散模式
  • 设计目的:控制渐变区域外像素的填充方式
  • 使用场景:需定义渐变边界外颜色行为时调用

入参

名称 参数类型 详细说明 约束取值范围
gradientSpread const GradientSpread& 渐变扩散模式枚举值,入参只读引用,不修改所指对象 GradientSpread

SetJoinType

void SetJoinType(const JoinType& joinType)

功能说明

  • 核心用途:设置描边路径段连接类型
  • 设计目的:控制路径拐角处的连接样式
  • 使用场景:绘制多段折线路径时需指定连接样式

入参

名称 参数类型 详细说明 约束取值范围
joinType const JoinType& 连接类型枚举值,入参只读引用,不修改所指对象 JoinType

SetCapType

void SetCapType(const CapType& capType)

功能说明

  • 核心用途:设置描边端点类型
  • 设计目的:控制路径端点的绘制样式
  • 使用场景:绘制开放路径时需指定端点样式

入参

名称 参数类型 详细说明 约束取值范围
capType const CapType& 端点类型枚举值,入参只读引用,不修改所指对象 CapType

SetAntialiased

void SetAntialiased(bool antialiased)

功能说明

  • 核心用途:设置抗锯齿使能标志
  • 设计目的:控制绘制时是否启用抗锯齿
  • 使用场景:需开关抗锯齿效果时调用

入参

名称 参数类型 详细说明 约束取值范围
antialiased bool 抗锯齿使能标志 true:启用抗锯齿;false:禁用抗锯齿

SetWrapPattern

void SetWrapPattern(PatternType wrap, uint32_t color, Matrix3<float> mat, ImageInfo img)

功能说明

  • 核心用途:设置图案填充的平铺模式、颜色、变换矩阵与图像信息
  • 设计目的:为画笔配置图案填充绘制能力
  • 使用场景:需以图片或纯色图案进行平铺填充时调用

入参

名称 参数类型 详细说明 约束取值范围
wrap PatternType 图案填充类型 PatternType
color uint32_t 填充颜色值,wrap 为 PATTERN_FILL 时使用 0x00000000 ~ 0xFFFFFFFF
mat Matrix3 图案变换矩阵,用于图案填充时的坐标变换 -
img ImageInfo 图像信息,用于图片图案填充 -

SetClipRect

void SetClipRect(Rect clipRect)

功能说明

  • 核心用途:设置裁剪矩形区域
  • 设计目的:将绘制操作限制在指定矩形区域内
  • 使用场景:需对绘制内容进行矩形区域裁剪时调用

入参

名称 参数类型 详细说明 约束取值范围
clipRect Rect 裁剪矩形区域 有效矩形坐标范围

Enumerations

FillRule

enum class FillRule {
    NON_ZERO = 0,
    EVEN_ODD,
};
枚举成员 取值 描述
NON_ZERO 0 非零环绕规则
EVEN_ODD 1 奇偶规则

GradientSpread

enum class GradientSpread {
    SPREAD_PAD,
    SPREAD_REFLECT,
    SPREAD_REPEAT,
};
枚举成员 取值 描述
SPREAD_PAD 0 边缘颜色延伸填充
SPREAD_REFLECT 1 镜像反射填充
SPREAD_REPEAT 2 重复平铺填充

JoinType

enum class JoinType {
    JOIN_MITER = 0,
    JOIN_ROUND,
    JOIN_BEVEL,
};
枚举成员 取值 描述
JOIN_MITER 0 尖角连接
JOIN_ROUND 1 圆角连接
JOIN_BEVEL 2 斜角连接

PatternType

enum class PatternType {
    PATTERN_DISABLE = 0,
    PATTERN_FILL,
    PATTERN_PAD,
    PATTERN_REFLECT,
    PATTERN_REPEAT,
};
枚举成员 取值 描述
PATTERN_DISABLE 0 禁用图案填充
PATTERN_FILL 1 纯色填充
PATTERN_PAD 2 边缘延伸填充
PATTERN_REFLECT 3 镜像反射填充
PATTERN_REPEAT 4 重复平铺填充

PaintType

enum class PaintType {
    PAINT_GRADIENT,
    PAINT_PATTERN,
    PAINT_COLOR,
    PAINT_BUTT
};
枚举成员 取值 描述
PAINT_GRADIENT 0 渐变绘制模式
PAINT_PATTERN 1 图案填充绘制模式
PAINT_COLOR 2 纯色绘制模式
PAINT_BUTT 3 绘制类型结束标记

CapType

enum CapType : uint8_t {
    CAP_NONE,
    CAP_ROUND,
    CAP_ROUND_UNSHOW,
};
枚举成员 取值 描述
CAP_NONE 0 无端点样式
CAP_ROUND 1 圆形端点样式
CAP_ROUND_UNSHOW 2 圆形端点样式(不显示)

Structures

ColorStop

struct ColorStop {
    float stop;
    uint32_t color;
};

成员说明

成员名称 数据类型 描述
stop float 颜色停靠点位置,取值范围 0.0 ~ 1.0
color uint32_t 颜色值

LinearGradient

struct LinearGradient {
    int16_t startX;
    int16_t startY;
    int16_t endX;
    int16_t endY;
};

成员说明

成员名称 数据类型 描述
startX int16_t 渐变起点 X 坐标
startY int16_t 渐变起点 Y 坐标
endX int16_t 渐变终点 X 坐标
endY int16_t 渐变终点 Y 坐标

RadialGradient

struct RadialGradient {
    int16_t centerX;
    int16_t centerY;
    int16_t focalX;
    int16_t focalY;
    int16_t radius;
};

成员说明

成员名称 数据类型 描述
centerX int16_t 渐变圆心 X 坐标
centerY int16_t 渐变圆心 Y 坐标
focalX int16_t 焦点 X 坐标(当前不支持)
focalY int16_t 焦点 Y 坐标(当前不支持)
radius int16_t 渐变半径

SweepGradient

struct SweepGradient {
    int16_t centerX;
    int16_t centerY;
    int16_t startAngle;
};

成员说明

成员名称 数据类型 描述
centerX int16_t 渐变圆心 X 坐标
centerY int16_t 渐变圆心 Y 坐标
startAngle int16_t 起始角度,0 表示 12 点钟方向,90 表示 3 点钟方向

PatternInfo

struct PatternInfo {
    ImageInfo img;
    PatternType wrap;
    uint32_t color;
    Matrix3<float> mat3;
};

成员说明

成员名称 数据类型 描述
img ImageInfo 图像信息,用于图片图案填充
wrap PatternType 图案填充类型
color uint32_t 填充颜色值,wrap 为 PATTERN_FILL 时使用
mat3 Matrix3 图案变换矩阵