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<image.PixelMap>): 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<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调函数。返回一个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<image.PixelMap>): void 106 107获取屏幕截图。 108 109**系统能力:** SystemCapability.WindowManager.WindowManager.Core 110 111**需要权限**:ohos.permission.CAPTURE_SCREEN,仅系统应用可用。 112 113**参数:** 114 115| 参数名 | 类型 | 必填 | 说明 | 116| -------- | --------------------------------------- | ---- | ------------------------------------------------------------ | 117| callback | AsyncCallback<[image.PixelMap](js-apis-image.md#pixelmap7)> | 是 | 回调函数。返回一个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<image.PixelMap> 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<[image.PixelMap](js-apis-image.md#pixelmap7)> | 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