js-apis-screenshot.md 5.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
# 屏幕截图

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

## 导入模块

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

## ScreenshotOptions

设置截取图像的信息。

| 参数名     | 类型          | 必填 | 说明                                                         |
| ---------- | ------------- | ---- | ------------------------------------------------------------ |
| screenRect | [Rect](#Rect) | 否   | 表示截取图像的区域,不传值默认为全屏。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| imageSize  | [Size](#Size) | 否   | 表示截取图像的大小,不传值默认为全屏。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| rotation   | number        | 否   | 表示截取图像的旋转角度,取值可为0、90、180、270,默认值为0。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |


## Rect

表示截取图像的区域。

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| left   | number | 是   | 表示截取图像区域的左边界。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| top    | number | 是   | 表示截取图像区域的上边界。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| width  | number | 是   | 表示截取图像区域的宽度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是   | 表示截取图像区域的高度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |


## Size

表示截取图像的大小。

| 参数名 | 类型   | 必填 | 说明                                                         |
| ------ | ------ | ---- | ------------------------------------------------------------ |
| width  | number | 是   | 表示截取图像的宽度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |
| height | number | 是   | 表示截取图像的高度。<br/>**系统能力**:SystemCapability.WindowManager.WindowManager.Core |

## screenshot.save

save(options?: ScreenshotOptions, callback: AsyncCallback&lt;image.PixelMap&gt;): void

获取屏幕截图。

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

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

- 参数

  | 参数名   | 类型                                    | 必填 | 说明                                                         |
  | -------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
  | options  | [ScreenshotOptions](#ScreenshotOptions) | 否   | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |
  | callback | AsyncCallback&lt;image.PixelMap&gt;     | 是   | 回调返回一个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&lt;image.PixelMap&gt;

获取屏幕截图。

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

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

- 参数

  | 参数名  | 类型                                    | 必填 | 说明                                                         |
  | ------- | --------------------------------------- | ---- | ------------------------------------------------------------ |
  | options | [ScreenshotOptions](#ScreenshotOptions) | 否   | 该类型的参数包含screenRect,imageSize,rotation三个参数,需要分别设置这三个参数。 |

- 返回值

  | 类型                          | 说明                                            |
  | ----------------------------- | ----------------------------------------------- |
  | Promise&lt;image.PixelMap&gt; | 以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));
  });
  ```