js-apis-screenshot.md 4.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
# 屏幕截图

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

## 导入模块

```
import screenshot from '@ohos.screenshot';
```

## ScreenshotOptions

设置截取图像的信息。

16 17 18
**系统能力**:以下各项对应的系统能力均为 SystemCapability.WindowManager.WindowManager.Core。


19 20
| 参数名     | 类型          | 必填 | 说明                                                         |
| ---------- | ------------- | ---- | ------------------------------------------------------------ |
21 22
| screenRect | [Rect](#rect) | 否   | 表示截取图像的区域,不传值默认为全屏。|
| imageSize  | [Size](#size) | 否   | 表示截取图像的大小,不传值默认为全屏。|
23
| rotation   | number        | 否   | 表示截取图像的旋转角度,当前仅支持输入值为0,默认值为0。|
24 25 26 27 28 29


## Rect

表示截取图像的区域。

30 31
**系统能力**:以下各项对应的系统能力均为 SystemCapability.WindowManager.WindowManager.Core。

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


## Size

表示截取图像的大小。

44 45
**系统能力**:以下各项对应的系统能力均为 SystemCapability.WindowManager.WindowManager.Core。

46 47
| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
48 49
| width  | number | 是   | 表示截取图像的宽度。|
| height | number | 是   | 表示截取图像的高度。|
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

## screenshot.save

save(options?: ScreenshotOptions, callback: AsyncCallback<image.PixelMap>): void

获取屏幕截图。

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

**需要权限**:ohos.permission.CAPTURE_SCREEN

- 参数

  | 参数名   | 类型                                    | 必填 | 说明                                                         |
  | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
65
  | options  | [ScreenshotOptions](#screenshotoptions) | 否   | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
  | callback | AsyncCallback<image.PixelMap>     | 是   | 回调返回一个PixelMap对象。                                   |

- 示例

  ```
  var ScreenshotOptions = {
  	"screenRect": {
  		"left": 200,
  		"top": 100,
  		"width": 200,
  		"height": 200},
  	"imageSize": {
  		"width": 300,
  		"height": 300},
  	"rotation": 0
  };
  screenshot.save(ScreenshotOptions, (err, data) => {
  	if (err) {
  		console.error('Failed to save the screenshot. Error: ' + JSON.stringify(err));
  		return;
  	}
  	console.info('Screenshot saved. Data: ' + JSON.stringify(data));
  });
  ```

## screenshot.save

save(options?: ScreenshotOptions): Promise<image.PixelMap>

获取屏幕截图。

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

**需要权限**:ohos.permission.CAPTURE_SCREEN

- 参数

  | 参数名  | 类型                                    | 必填 | 说明                                                         |
  | ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
105
  | options | [ScreenshotOptions](#screenshotoptions) | 否   | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

- 返回值

  | 类型                          | 说明                                            |
  | ----------------------------- | ----------------------------------------------- |
  | Promise<image.PixelMap> | 以Promise形式返回结果,返回image.PixelMap对象。 |

- 示例

  ```
  var ScreenshotOptions = {
  	"screenRect": {
  		"left": 200,
  		"top": 100,
  		"width": 200,
  		"height": 200},
  	"imageSize": {
  		"width": 300,
  		"height": 300},
  	"rotation": 0
  };
  let promise = screenshot.save(ScreenshotOptions);
  promise.then(() => {
      console.log('screenshot save success');
  }).catch((err) => {
      console.log('screenshot save fail: ' + JSON.stringify(err));
  });
  ```