• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# drawing_text_blob.h
2
3## 概述
4
5文件中定义了与文字相关的功能函数。
6
7**引用文件:** <native_drawing/drawing_text_blob.h>
8
9**库:** libnative_drawing.so
10
11**起始版本:** 11
12
13**相关模块:** [Drawing](capi-drawing.md)
14
15## 汇总
16
17### 结构体
18
19| 名称 | typedef关键字 | 描述 |
20| -- | -- | -- |
21| [OH_Drawing_RunBuffer](capi-drawing-oh-drawing-runbuffer.md) | OH_Drawing_RunBuffer | 结构体用于描述一块内存,描述文字和位置信息。 |
22
23### 函数
24
25| 名称 | 描述 |
26| -- | -- |
27| [OH_Drawing_TextBlobBuilder* OH_Drawing_TextBlobBuilderCreate(void)](#oh_drawing_textblobbuildercreate) | 用于创建一个文本构造器对象。 |
28| [OH_Drawing_TextBlob* OH_Drawing_TextBlobCreateFromText(const void* text, size_t byteLength,const OH_Drawing_Font* font, OH_Drawing_TextEncoding textEncoding)](#oh_drawing_textblobcreatefromtext) | 使用文本创建一个文本对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>text、font任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>textEncoding不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
29| [OH_Drawing_TextBlob* OH_Drawing_TextBlobCreateFromPosText(const void* text, size_t byteLength,OH_Drawing_Point2D* point2D, const OH_Drawing_Font* font, OH_Drawing_TextEncoding textEncoding)](#oh_drawing_textblobcreatefrompostext) | 使用文本创建文本对象,文本对象中每个字符的坐标由OH_Drawing_Point2D数组中对应的坐标信息决定。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>text、point2D、font任意一个为NULL或byteLength等于0时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>textEncoding不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
30| [OH_Drawing_TextBlob* OH_Drawing_TextBlobCreateFromString(const char* str,const OH_Drawing_Font* font, OH_Drawing_TextEncoding textEncoding)](#oh_drawing_textblobcreatefromstring) | 使用字符串创建文本对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>str、font任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>textEncoding不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 |
31| [void OH_Drawing_TextBlobGetBounds(OH_Drawing_TextBlob* textBlob, OH_Drawing_Rect* rect)](#oh_drawing_textblobgetbounds) | 获取文本对象的边界范围。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlob、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
32| [uint32_t OH_Drawing_TextBlobUniqueID(const OH_Drawing_TextBlob* textBlob)](#oh_drawing_textblobuniqueid) | 获取文本的标识符,该标识符是唯一的非零值。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlob为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
33| [const OH_Drawing_RunBuffer* OH_Drawing_TextBlobBuilderAllocRunPos(OH_Drawing_TextBlobBuilder* textBlobBuilder,const OH_Drawing_Font* font, int32_t count, const OH_Drawing_Rect* rect)](#oh_drawing_textblobbuilderallocrunpos) | 申请一块内存,用于存储文字和位置信息。返回的指针无需调用者管理,当调用[OH_Drawing_TextBlobBuilderMake](capi-drawing-text-blob-h.md#oh_drawing_textblobbuildermake)后禁止使用。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlobBuilder、font任意一个为NULL或者count小于等于0时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
34| [OH_Drawing_TextBlob* OH_Drawing_TextBlobBuilderMake(OH_Drawing_TextBlobBuilder* textBlobBuilder)](#oh_drawing_textblobbuildermake) | 用于从文本构造器中创建文本对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlobBuilder为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 |
35| [void OH_Drawing_TextBlobDestroy(OH_Drawing_TextBlob* textBlob)](#oh_drawing_textblobdestroy) | 用于销毁文本对象并回收该对象占有的内存。 |
36| [void OH_Drawing_TextBlobBuilderDestroy(OH_Drawing_TextBlobBuilder* textBlobBuilder)](#oh_drawing_textblobbuilderdestroy) | 用于销毁文本构造器对象并回收该对象占有的内存。 |
37
38## 函数说明
39
40### OH_Drawing_TextBlobBuilderCreate()
41
42```
43OH_Drawing_TextBlobBuilder* OH_Drawing_TextBlobBuilderCreate(void)
44```
45
46**描述**
47
48用于创建一个文本构造器对象。
49
50**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
51
52**起始版本:** 11
53
54**返回:**
55
56| 类型 | 说明 |
57| -- | -- |
58| [OH_Drawing_TextBlobBuilder](capi-drawing-oh-drawing-textblobbuilder.md)* | 函数会返回一个指针,指针指向创建的文本构造器对象。 |
59
60### OH_Drawing_TextBlobCreateFromText()
61
62```
63OH_Drawing_TextBlob* OH_Drawing_TextBlobCreateFromText(const void* text, size_t byteLength,const OH_Drawing_Font* font, OH_Drawing_TextEncoding textEncoding)
64```
65
66**描述**
67
68使用文本创建一个文本对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>text、font任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>textEncoding不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
69
70**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
71
72**起始版本:** 12
73
74
75**参数:**
76
77| 参数项 | 描述 |
78| -- | -- |
79| const void* text | 指向文本的指针。 |
80| size_t byteLength | 文本的字节长度。 |
81| const [OH_Drawing_Font](capi-drawing-oh-drawing-font.md)* font | 指向字体对象[OH_Drawing_Font](capi-drawing-oh-drawing-font.md)的指针。 |
82| [OH_Drawing_TextEncoding](capi-drawing-types-h.md#oh_drawing_textencoding) textEncoding | 文本编码类型[OH_Drawing_TextEncoding](capi-drawing-types-h.md#oh_drawing_textencoding)。 |
83
84**返回:**
85
86| 类型 | 说明 |
87| -- | -- |
88| [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* | 函数返回一个指针,指针指向创建的文本对象[OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)。 |
89
90### OH_Drawing_TextBlobCreateFromPosText()
91
92```
93OH_Drawing_TextBlob* OH_Drawing_TextBlobCreateFromPosText(const void* text, size_t byteLength,OH_Drawing_Point2D* point2D, const OH_Drawing_Font* font, OH_Drawing_TextEncoding textEncoding)
94```
95
96**描述**
97
98使用文本创建文本对象,文本对象中每个字符的坐标由OH_Drawing_Point2D数组中对应的坐标信息决定。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>text、point2D、font任意一个为NULL或byteLength等于0时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>textEncoding不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
99
100**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
101
102**起始版本:** 12
103
104
105**参数:**
106
107| 参数项 | 描述 |
108| -- | -- |
109| const void* text | 指向文本的指针。 |
110| size_t byteLength | 文本的字节长度。 |
111| [OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)* point2D | 二维点[OH_Drawing_Point2D](capi-drawing-oh-drawing-point2d.md)数组首地址,数组个数由[OH_Drawing_FontCountText](capi-drawing-font-h.md#oh_drawing_fontcounttext)计算结果决定。 |
112| const [OH_Drawing_Font](capi-drawing-oh-drawing-font.md)* font | 指向字体对象[OH_Drawing_Font](capi-drawing-oh-drawing-font.md)的指针。 |
113| [OH_Drawing_TextEncoding](capi-drawing-types-h.md#oh_drawing_textencoding) textEncoding | 文本编码类型[OH_Drawing_TextEncoding](capi-drawing-types-h.md#oh_drawing_textencoding)。 |
114
115**返回:**
116
117| 类型 | 说明 |
118| -- | -- |
119| [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* | 函数返回一个指针,指针指向创建的文本对象[OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)。 |
120
121### OH_Drawing_TextBlobCreateFromString()
122
123```
124OH_Drawing_TextBlob* OH_Drawing_TextBlobCreateFromString(const char* str,const OH_Drawing_Font* font, OH_Drawing_TextEncoding textEncoding)
125```
126
127**描述**
128
129使用字符串创建文本对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>str、font任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>textEncoding不在枚举范围内返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。
130
131**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
132
133**起始版本:** 12
134
135
136**参数:**
137
138| 参数项 | 描述 |
139| -- | -- |
140| const char* str | 指向字符串的指针。 |
141| const [OH_Drawing_Font](capi-drawing-oh-drawing-font.md)* font | 指向字体对象[OH_Drawing_Font](capi-drawing-oh-drawing-font.md)的指针。 |
142| [OH_Drawing_TextEncoding](capi-drawing-types-h.md#oh_drawing_textencoding) textEncoding | 文本编码类型[OH_Drawing_TextEncoding](capi-drawing-types-h.md#oh_drawing_textencoding)。 |
143
144**返回:**
145
146| 类型 | 说明 |
147| -- | -- |
148| [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* | 函数返回一个指针,指针指向创建的文本对象[OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)。 |
149
150### OH_Drawing_TextBlobGetBounds()
151
152```
153void OH_Drawing_TextBlobGetBounds(OH_Drawing_TextBlob* textBlob, OH_Drawing_Rect* rect)
154```
155
156**描述**
157
158获取文本对象的边界范围。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlob、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
159
160**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
161
162**起始版本:** 12
163
164
165**参数:**
166
167| 参数项 | 描述 |
168| -- | -- |
169| [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* textBlob | 指向文本对象[OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)的指针。 |
170| [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)的指针,开发者可调用[OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)接口创建。 |
171
172### OH_Drawing_TextBlobUniqueID()
173
174```
175uint32_t OH_Drawing_TextBlobUniqueID(const OH_Drawing_TextBlob* textBlob)
176```
177
178**描述**
179
180获取文本的标识符,该标识符是唯一的非零值。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlob为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
181
182**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
183
184**起始版本:** 12
185
186
187**参数:**
188
189| 参数项 | 描述 |
190| -- | -- |
191| const [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* textBlob | 指向文本对象[OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)的指针。 |
192
193**返回:**
194
195| 类型 | 说明 |
196| -- | -- |
197| uint32_t | 返回文本对象的标识符。 |
198
199### OH_Drawing_TextBlobBuilderAllocRunPos()
200
201```
202const OH_Drawing_RunBuffer* OH_Drawing_TextBlobBuilderAllocRunPos(OH_Drawing_TextBlobBuilder* textBlobBuilder,const OH_Drawing_Font* font, int32_t count, const OH_Drawing_Rect* rect)
203```
204
205**描述**
206
207申请一块内存,用于存储文字和位置信息。返回的指针无需调用者管理,当调用[OH_Drawing_TextBlobBuilderMake](capi-drawing-text-blob-h.md#oh_drawing_textblobbuildermake)后禁止使用。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlobBuilder、font任意一个为NULL或者count小于等于0时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
208
209**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
210
211**起始版本:** 11
212
213
214**参数:**
215
216| 参数项 | 描述 |
217| -- | -- |
218| [OH_Drawing_TextBlobBuilder](capi-drawing-oh-drawing-textblobbuilder.md)* textBlobBuilder | 指向文本构造器对象的指针。 |
219| const [OH_Drawing_Font](capi-drawing-oh-drawing-font.md)* font | 指向字体对象的指针。 |
220| int32_t count | 文字的数量。 |
221| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 文本的边界框,为NULL表示不设置边界框。 |
222
223### OH_Drawing_TextBlobBuilderMake()
224
225```
226OH_Drawing_TextBlob* OH_Drawing_TextBlobBuilderMake(OH_Drawing_TextBlobBuilder* textBlobBuilder)
227```
228
229**描述**
230
231用于从文本构造器中创建文本对象。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>textBlobBuilder为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。
232
233**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
234
235**起始版本:** 11
236
237
238**参数:**
239
240| 参数项 | 描述 |
241| -- | -- |
242| [OH_Drawing_TextBlobBuilder](capi-drawing-oh-drawing-textblobbuilder.md)* textBlobBuilder | 指向文本构造器对象的指针。 |
243
244**返回:**
245
246| 类型 | 说明 |
247| -- | -- |
248| [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* | 返回一个指针,指针指向创建的文本对象。 |
249
250### OH_Drawing_TextBlobDestroy()
251
252```
253void OH_Drawing_TextBlobDestroy(OH_Drawing_TextBlob* textBlob)
254```
255
256**描述**
257
258用于销毁文本对象并回收该对象占有的内存。
259
260**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
261
262**起始版本:** 11
263
264
265**参数:**
266
267| 参数项 | 描述 |
268| -- | -- |
269| [OH_Drawing_TextBlob](capi-drawing-oh-drawing-textblob.md)* textBlob | 指向文本对象的指针。 |
270
271### OH_Drawing_TextBlobBuilderDestroy()
272
273```
274void OH_Drawing_TextBlobBuilderDestroy(OH_Drawing_TextBlobBuilder* textBlobBuilder)
275```
276
277**描述**
278
279用于销毁文本构造器对象并回收该对象占有的内存。
280
281**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing
282
283**起始版本:** 11
284
285
286**参数:**
287
288| 参数项 | 描述 |
289| -- | -- |
290| [OH_Drawing_TextBlobBuilder](capi-drawing-oh-drawing-textblobbuilder.md)* textBlobBuilder | 指向文本构造器对象的指针。 |
291
292
293