js-apis-screenshot.md 6.3 KB
Newer Older
1
# 屏幕截图
2
本模块提供屏幕截图的能力,截取屏幕时支持设置截取的区域、大小等图像信息。
3

G
ge-yafang 已提交
4
>  **说明:**
5
>
6
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
7 8
>
> 该模块接口为系统接口。
9 10 11

## 导入模块

12
```js
13 14 15 16 17 18 19
import screenshot from '@ohos.screenshot';
```

## ScreenshotOptions

设置截取图像的信息。

20
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
21 22


L
leafly2021 已提交
23 24 25 26 27 28
| 参数名                 | 类型          | 必填 | 说明                                                         |
| ---------------------- | ------------- | ---- | ------------------------------------------------------------ |
| screenRect             | [Rect](#rect) | 否   | 表示截取图像的区域,不传值默认为全屏。                       |
| imageSize              | [Size](#size) | 否   | 表示截取图像的大小,不传值默认为全屏。                       |
| rotation               | number        | 否   | 表示截取图像的旋转角度,当前仅支持输入值为0,默认值为0。     |
| displayId<sup>8+</sup> | number        | 否   | 表示截取图像的显示设备[Display](js-apis-display.md#display)的ID号。 |
29 30 31 32 33 34


## Rect

表示截取图像的区域。

35
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
36

37 38
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
39 40 41 42
| left   | number | 是   | 表示截取图像区域的左边界。|
| top    | number | 是   | 表示截取图像区域的上边界。|
| width  | number | 是   | 表示截取图像区域的宽度。|
| height | number | 是   | 表示截取图像区域的高度。|
43 44 45 46 47 48


## Size

表示截取图像的大小。

49
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
50

51 52
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
53 54
| width  | number | 是   | 表示截取图像的宽度。|
| height | number | 是   | 表示截取图像的高度。|
55 56 57

## screenshot.save

Y
yangfei 已提交
58
save(options: ScreenshotOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): void
59 60 61

获取屏幕截图。

G
ge-yafang 已提交
62
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
63

64
**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
65

G
ge-yafang 已提交
66
**参数:**
67

L
leafly2021 已提交
68 69
| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
Y
yangfei 已提交
70
| options  | [ScreenshotOptions](#screenshotoptions) | 是   | 该类型的参数包含screenRect、imageSize、rotation、displayId四个参数,可以分别设置这四个参数。 |
71
| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt;     | 是   | 回调函数。返回一个PixelMap对象。                                   |
72

G
ge-yafang 已提交
73
**示例:**
74

75
  ```js
76 77 78 79 80 81 82 83 84 85 86
  var screenshotOptions = {
    "screenRect": {
        "left": 200,
        "top": 100,
        "width": 200,
        "height": 200},
    "imageSize": {
        "width": 300,
        "height": 300},
    "rotation": 0,
    "displayId": 0
87
  };
88 89 90 91 92 93 94
  screenshot.save(screenshotOptions, (err, pixelMap) => {
    if (err) {
        console.log('Failed to save screenshot: ' + JSON.stringify(err));
        return;
    }
    console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
    pixelMap.release(); // PixelMap使用完后及时释放内存
95 96 97 98 99
  });
  ```

## screenshot.save

Y
yangfei 已提交
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
save(callback: AsyncCallback&lt;image.PixelMap&gt;): void

获取屏幕截图。

**系统能力:** SystemCapability.WindowManager.WindowManager.Core

**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。

**参数:**

| 参数名   | 类型                                    | 必填 | 说明                                                         |
| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt;     | 是   | 回调函数。返回一个PixelMap对象。                                   |

**示例:**

  ```js
  screenshot.save((err, pixelMap) => {
    if (err) {
        console.log('Failed to save screenshot: ' + JSON.stringify(err));
        return;
    }
    console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
    pixelMap.release(); // PixelMap使用完后及时释放内存
  });
  ```

## screenshot.save

129 130 131 132
save(options?: ScreenshotOptions): Promise&lt;image.PixelMap&gt;

获取屏幕截图。

G
ge-yafang 已提交
133
**系统能力:** SystemCapability.WindowManager.WindowManager.Core
134

135
**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。
136

G
ge-yafang 已提交
137
**参数:**
138

G
ge-yafang 已提交
139 140
| 参数名  | 类型                                    | 必填 | 说明                                                         |
| ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
L
leafly2021 已提交
141
| options | [ScreenshotOptions](#screenshotoptions) | 否   | 该类型的参数包含screenRect、imageSize、rotation、displayId四个参数,可以分别设置这四个参数。 |
142

G
ge-yafang 已提交
143
**返回值:**
144

L
leafly2021 已提交
145 146
| 类型                          | 说明                                            |
| ----------------------------- | ----------------------------------------------- |
147
| Promise&lt;[image.PixelMap](js-apis-image.md#pixelmap7)&gt; | Promise对象。返回一个PixelMap对象。 |
148

G
ge-yafang 已提交
149
**示例:**
150

151
  ```js
152
  var screenshotOptions = {
153 154 155 156 157 158 159 160
  	"screenRect": {
  		"left": 200,
  		"top": 100,
  		"width": 200,
  		"height": 200},
  	"imageSize": {
  		"width": 300,
  		"height": 300},
L
leafly2021 已提交
161 162
  	"rotation": 0,
  	"displayId": 0
163
  };
164 165 166 167
  let promise = screenshot.save(screenshotOptions);
  promise.then((pixelMap) => {
      console.log('Succeeded in saving sreenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
      pixelMap.release(); // PixelMap使用完后及时释放内存
168
  }).catch((err) => {
169
      console.log('Failed to save screenshot: ' + JSON.stringify(err));
170 171
  });
  ```