1# drawing_typeface.h 2 3## 概述 4 5文件中定义了与字形相关的功能函数。<br>不同的平台有自己的默认字形,也可以从ttf文件解析出三方指定字形,如宋体、黑体字形等。 6 7**引用文件:** <native_drawing/drawing_typeface.h> 8 9**库:** libnative_drawing.so 10 11**起始版本:** 11 12 13**相关模块:** [Drawing](capi-drawing.md) 14 15## 汇总 16 17### 函数 18 19| 名称 | 描述 | 20| -- | -- | 21| [OH_Drawing_Typeface* OH_Drawing_TypefaceCreateDefault(void)](#oh_drawing_typefacecreatedefault) | 用于创建一个默认的字形对象。 | 22| [OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromFile(const char* path, int index)](#oh_drawing_typefacecreatefromfile) | 通过文件创建一个字形对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>path为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 | 23| [OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromFileWithArguments(const char* path,const OH_Drawing_FontArguments* fontArguments)](#oh_drawing_typefacecreatefromfilewitharguments) | 从指定文件路径创建带有字型参数的字体对象。<br>如果字体对象不支持字型参数中描述的可变维度,此函数将会创建默认字型参数的字体对象。<br>在这种情况下,此函数将提供与[OH_Drawing_TypefaceCreateFromFile](capi-drawing-typeface-h.md#oh_drawing_typefacecreatefromfile)相同的功能。 | 24| [OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromCurrent(const OH_Drawing_Typeface* current,const OH_Drawing_FontArguments* fontArguments)](#oh_drawing_typefacecreatefromcurrent) | 通过已存在的字体对象创建带有字型参数的字体对象。 | 25| [OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromStream(OH_Drawing_MemoryStream* memoryStream, int32_t index)](#oh_drawing_typefacecreatefromstream) | 通过内存流创建一个字形对象。如果内存流是无效的字体文件,返回空指针。内存流传入后,所有权转移,开发者不能再释放它。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>memoryStream为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 | 26| [void OH_Drawing_TypefaceDestroy(OH_Drawing_Typeface* typeface)](#oh_drawing_typefacedestroy) | 用于销毁字形对象并回收该对象占有的内存。 | 27| [OH_Drawing_FontArguments* OH_Drawing_FontArgumentsCreate(void)](#oh_drawing_fontargumentscreate) | 用于创建一个字型参数对象。字型参数用于创建带有自定义属性的字体对象。 | 28| [OH_Drawing_ErrorCode OH_Drawing_FontArgumentsAddVariation(OH_Drawing_FontArguments* fontArguments,const char* axis, float value)](#oh_drawing_fontargumentsaddvariation) | 给字型参数对象添加可变维度。 | 29| [OH_Drawing_ErrorCode OH_Drawing_FontArgumentsDestroy(OH_Drawing_FontArguments* fontArguments)](#oh_drawing_fontargumentsdestroy) | 用于销毁一个字型参数对象。 | 30 31## 函数说明 32 33### OH_Drawing_TypefaceCreateDefault() 34 35``` 36OH_Drawing_Typeface* OH_Drawing_TypefaceCreateDefault(void) 37``` 38 39**描述** 40 41用于创建一个默认的字形对象。 42 43**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 44 45**起始版本:** 11 46 47**返回:** 48 49| 类型 | 说明 | 50| -- | -- | 51| [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* | 返回一个指针,指针指向创建的字形对象。 | 52 53### OH_Drawing_TypefaceCreateFromFile() 54 55``` 56OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromFile(const char* path, int index) 57``` 58 59**描述** 60 61通过文件创建一个字形对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>path为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 62 63**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 64 65**起始版本:** 12 66 67 68**参数:** 69 70| 参数项 | 描述 | 71| -- | -- | 72| const char* path | 指向文件路径的指针。 | 73| int index | 文件索引。 | 74 75**返回:** 76 77| 类型 | 说明 | 78| -- | -- | 79| [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* | 函数返回一个指针,指针指向创建的字形对象[OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)。 | 80 81### OH_Drawing_TypefaceCreateFromFileWithArguments() 82 83``` 84OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromFileWithArguments(const char* path,const OH_Drawing_FontArguments* fontArguments) 85``` 86 87**描述** 88 89从指定文件路径创建带有字型参数的字体对象。<br>如果字体对象不支持字型参数中描述的可变维度,此函数将会创建默认字型参数的字体对象。<br>在这种情况下,此函数将提供与[OH_Drawing_TypefaceCreateFromFile](capi-drawing-typeface-h.md#oh_drawing_typefacecreatefromfile)相同的功能。 90 91**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 92 93**起始版本:** 13 94 95 96**参数:** 97 98| 参数项 | 描述 | 99| -- | -- | 100| const char* path | 指向字体对象所在文件路径的指针。 | 101| const [OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)* fontArguments | 指向字型参数对象[OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)的指针。 | 102 103**返回:** 104 105| 类型 | 说明 | 106| -- | -- | 107| [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* | 函数返回一个指针,指针指向创建的字体对象[OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)。<br> 如果返回的对象指针为空,则表示字体对象创建失败。失败的原因可能为:没有可用的内存、传入的文件路径对象指针或字型参数为空、传入的路径无效。 | 108 109### OH_Drawing_TypefaceCreateFromCurrent() 110 111``` 112OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromCurrent(const OH_Drawing_Typeface* current,const OH_Drawing_FontArguments* fontArguments) 113``` 114 115**描述** 116 117通过已存在的字体对象创建带有字型参数的字体对象。 118 119**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 120 121**起始版本:** 13 122 123 124**参数:** 125 126| 参数项 | 描述 | 127| -- | -- | 128| const [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* current | 指向字体对象[OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)的指针。 | 129| const [OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)* fontArguments | 指向字型参数对象[OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)的指针。 | 130 131**返回:** 132 133| 类型 | 说明 | 134| -- | -- | 135| [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* | 函数返回一个指针,指针指向创建的字体对象[OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)。<br> 如果返回的对象指针为空,则表示字体对象创建失败。失败的原因可能为:没有可用的内存、传入的文件路径对象指针或字型参数为空、传入的字体对象不支持字型参数对象中描述的可变维度。 | 136 137### OH_Drawing_TypefaceCreateFromStream() 138 139``` 140OH_Drawing_Typeface* OH_Drawing_TypefaceCreateFromStream(OH_Drawing_MemoryStream* memoryStream, int32_t index) 141``` 142 143**描述** 144 145通过内存流创建一个字形对象。如果内存流是无效的字体文件,返回空指针。内存流传入后,所有权转移,开发者不能再释放它。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>memoryStream为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 146 147**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 148 149**起始版本:** 12 150 151 152**参数:** 153 154| 参数项 | 描述 | 155| -- | -- | 156| [OH_Drawing_MemoryStream](capi-drawing-oh-drawing-memorystream.md)* memoryStream | 指向内存流对象[OH_Drawing_MemoryStream](capi-drawing-oh-drawing-memorystream.md)的指针。 | 157| int32_t index | 内存流索引。 | 158 159**返回:** 160 161| 类型 | 说明 | 162| -- | -- | 163| [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* | 返回一个指针,指针指向创建的字形对象[OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)。 | 164 165### OH_Drawing_TypefaceDestroy() 166 167``` 168void OH_Drawing_TypefaceDestroy(OH_Drawing_Typeface* typeface) 169``` 170 171**描述** 172 173用于销毁字形对象并回收该对象占有的内存。 174 175**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 176 177**起始版本:** 11 178 179 180**参数:** 181 182| 参数项 | 描述 | 183| -- | -- | 184| [OH_Drawing_Typeface](capi-drawing-oh-drawing-typeface.md)* typeface | 指向字形对象的指针。 | 185 186### OH_Drawing_FontArgumentsCreate() 187 188``` 189OH_Drawing_FontArguments* OH_Drawing_FontArgumentsCreate(void) 190``` 191 192**描述** 193 194用于创建一个字型参数对象。字型参数用于创建带有自定义属性的字体对象。 195 196**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 197 198**起始版本:** 13 199 200**返回:** 201 202| 类型 | 说明 | 203| -- | -- | 204| [OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)* | 返回一个指针,指针指向创建的字型参数对象。 | 205 206### OH_Drawing_FontArgumentsAddVariation() 207 208``` 209OH_Drawing_ErrorCode OH_Drawing_FontArgumentsAddVariation(OH_Drawing_FontArguments* fontArguments,const char* axis, float value) 210``` 211 212**描述** 213 214给字型参数对象添加可变维度。 215 216**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 217 218**起始版本:** 13 219 220 221**参数:** 222 223| 参数项 | 描述 | 224| -- | -- | 225| [OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)* fontArguments | 指向字型参数对象[OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)的指针。 | 226| const char* axis | 字型参数对象可变维度的标签,必须为4个ASCII字符。具体可支持的标签取决于加载的字体文件,如'wght'即为字重标签。 | 227| float value | 可变维度标签对应的取值。 | 228 229**返回:** 230 231| 类型 | 说明 | 232| -- | -- | 233| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数fontArguments或axis任意一个为NULL或者axis的长度不为4。 | 234 235### OH_Drawing_FontArgumentsDestroy() 236 237``` 238OH_Drawing_ErrorCode OH_Drawing_FontArgumentsDestroy(OH_Drawing_FontArguments* fontArguments) 239``` 240 241**描述** 242 243用于销毁一个字型参数对象。 244 245**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 246 247**起始版本:** 13 248 249**参数:** 250 251| 参数项 | 描述 | 252| -- | -- | 253| [OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)* fontArguments | 指向字型参数对象[OH_Drawing_FontArguments](capi-drawing-oh-drawing-fontarguments.md)的指针。 | 254 255**返回:** 256 257| 类型 | 说明 | 258| -- | -- | 259| [OH_Drawing_ErrorCode](capi-drawing-error-code-h.md#oh_drawing_errorcode) | 函数返回执行错误码。<br> 返回OH_DRAWING_SUCCESS,表示执行成功。<br> 返回OH_DRAWING_ERROR_INVALID_PARAMETER,表示参数fontArguments为NULL。 | 260 261 262