• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.screenshot (屏幕截图)
2
3本模块提供屏幕截图的能力,截取屏幕时支持设置截取的区域、大小等图像信息。
4
5>  **说明:**
6>
7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8>
9> 该模块接口为系统接口。
10
11## 导入模块
12
13```js
14import screenshot from '@ohos.screenshot';
15```
16
17## ScreenshotOptions
18
19设置截取图像的信息。
20
21**系统能力:** SystemCapability.WindowManager.WindowManager.Core
22
23
24| 名称                 | 类型          | 必填 | 说明                                                         |
25| ---------------------- | ------------- | ---- | ------------------------------------------------------------ |
26| screenRect             | [Rect](#rect) | 否   | 表示截取图像的区域,不传值默认为全屏。                       |
27| imageSize              | [Size](#size) | 否   | 表示截取图像的大小,不传值默认为全屏。                       |
28| rotation               | number        | 否   | 表示截取图像的旋转角度,当前仅支持输入值为0,默认值为0。     |
29| displayId<sup>8+</sup> | number        | 否   | 表示截取图像的显示设备[Display](js-apis-display.md#display)的ID号。 |
30
31
32## Rect
33
34表示截取图像的区域。
35
36**系统能力:** SystemCapability.WindowManager.WindowManager.Core
37
38| 名称 | 类型   | 必填 | 说明                                                         |
39| ------ | ------ | ---- | ------------------------------------------------------------ |
40| left   | number | 是   | 表示截取图像区域的左边界,单位为像素。 |
41| top    | number | 是   | 表示截取图像区域的上边界,单位为像素。 |
42| width  | number | 是   | 表示截取图像区域的宽度,单位为像素。 |
43| height | number | 是   | 表示截取图像区域的高度,单位为像素。 |
44
45
46## Size
47
48表示截取图像的大小。
49
50**系统能力:** SystemCapability.WindowManager.WindowManager.Core
51
52| 名称 | 类型   | 必填 | 说明                                                         |
53| ------ | ------ | ---- | ------------------------------------------------------------ |
54| width  | number | 是   | 表示截取图像的宽度,单位为像素。 |
55| height | number | 是   | 表示截取图像的高度,单位为像素。 |
56
57## screenshot.save
58
59save(options: ScreenshotOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): void
60
61获取屏幕截图。
62
63**系统能力:** SystemCapability.WindowManager.WindowManager.Core
64
65**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
66
67**参数:**
68
69| 参数名   | 类型                                    | 必填 | 说明                                                         |
70| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
71| options  | [ScreenshotOptions](#screenshotoptions) | 是   | 该类型的参数包含screenRect、imageSize、rotation、displayId四个参数,可以分别设置这四个参数。 |
72| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt;     | 是   | 回调函数。返回一个PixelMap对象。                                   |
73
74**示例:**
75
76  ```js
77  let screenshotOptions = {
78    "screenRect": {
79        "left": 200,
80        "top": 100,
81        "width": 200,
82        "height": 200},
83    "imageSize": {
84        "width": 300,
85        "height": 300},
86    "rotation": 0,
87    "displayId": 0
88  };
89  try {
90    screenshot.save(screenshotOptions, (err, pixelMap) => {
91      if (err) {
92          console.log('Failed to save screenshot. Code: ' + JSON.stringify(err));
93          return;
94      }
95      console.log('Succeeded in saving screenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
96      pixelMap.release(); // PixelMap使用完后及时释放内存
97    });
98  } catch (exception) {
99    console.error('Failed to save screenshot. Code: ' + JSON.stringify(exception));
100  };
101  ```
102
103## screenshot.save
104
105save(callback: AsyncCallback&lt;image.PixelMap&gt;): void
106
107获取屏幕截图。
108
109**系统能力:** SystemCapability.WindowManager.WindowManager.Core
110
111**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
112
113**参数:**
114
115| 参数名   | 类型                                    | 必填 | 说明                                                         |
116| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
117| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt;     | 是   | 回调函数。返回一个PixelMap对象。                                   |
118
119**示例:**
120
121  ```js
122  try {
123    screenshot.save((err, pixelMap) => {
124      if (err) {
125          console.log('Failed to save screenshot. Code: ' + JSON.stringify(err));
126          return;
127      }
128      console.log('Succeeded in saving screenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
129      pixelMap.release(); // PixelMap使用完后及时释放内存
130    });
131  } catch (exception) {
132    console.error('Failed to save screenshot. Code: ' + JSON.stringify(exception));
133  };
134  ```
135
136## screenshot.save
137
138save(options?: ScreenshotOptions): Promise&lt;image.PixelMap&gt;
139
140获取屏幕截图。
141
142**系统能力:** SystemCapability.WindowManager.WindowManager.Core
143
144**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
145
146**参数:**
147
148| 参数名  | 类型                                    | 必填 | 说明                                                         |
149| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
150| options | [ScreenshotOptions](#screenshotoptions) | 否   | 该类型的参数包含screenRect、imageSize、rotation、displayId四个参数,可以分别设置这四个参数。 |
151
152**返回值:**
153
154| 类型                          | 说明                                            |
155| ----------------------------- | ----------------------------------------------- |
156| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise对象。返回一个PixelMap对象。 |
157
158**示例:**
159
160  ```js
161  let screenshotOptions = {
162  	"screenRect": {
163  		"left": 200,
164  		"top": 100,
165  		"width": 200,
166  		"height": 200},
167  	"imageSize": {
168  		"width": 300,
169  		"height": 300},
170  	"rotation": 0,
171  	"displayId": 0
172  };
173  try {
174    let promise = screenshot.save(screenshotOptions);
175    promise.then((pixelMap) => {
176        console.log('Succeeded in saving screenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
177        pixelMap.release(); // PixelMap使用完后及时释放内存
178    }).catch((err) => {
179        console.log('Failed to save screenshot. Code: ' + JSON.stringify(err));
180    });
181  } catch (exception) {
182    console.error('Failed to save screenshot. Code: ' + JSON.stringify(exception));
183  };
184  ```
185