@ohos.screenshot (Screenshot) (System API)

The Screenshot module provides APIs for you to set information such as the region to capture and the size of the screen region when capturing a screen.

NOTE

  • The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.

  • The APIs provided by this module are system APIs.

Modules to Import

import screenshot from '@ohos.screenshot';

ScreenshotOptions

Describes screenshot options.

System capability: SystemCapability.WindowManager.WindowManager.Core

Name Type Mandatory Description
screenRect Rect No Region of the screen to capture. If this parameter is null, the full screen will be captured.
imageSize Size No Size of the screen region to capture. If this parameter is null, the full screen will be captured.
rotation number No Rotation angle of the screenshot. Currently, the value can be 0 only. The default value is 0. The value must be an integer.
displayId8+ number No ID of the display device on which the screen region is to be captured. The value must be an integer.

Rect

Describes the region of the screen to capture.

System capability: SystemCapability.WindowManager.WindowManager.Core

Name Type Mandatory Description
left number Yes Left boundary of the screen region to capture, in px. The value must be an integer.
top number Yes Top boundary of the screen region to capture, in px. The value must be an integer.
width number Yes Width of the screen region to capture, in px. The value must be an integer.
height number Yes Height of the screen region to capture, in px. The value must be an integer.

Size

Describes the size of the screen region to capture.

System capability: SystemCapability.WindowManager.WindowManager.Core

Name Type Mandatory Description
width number Yes Width of the screen region to capture, in px. The value must be an integer.
height number Yes Height of the screen region to capture, in px. The value must be an integer.

screenshot.save

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

Takes a screenshot and saves it as a PixelMap object. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.WindowManager.WindowManager.Core

Required permissions: ohos.permission.CAPTURE_SCREEN (available only to system applications)

Parameters

Name Type Mandatory Description
options ScreenshotOptions Yes Screenshot settings consist of screenRect, imageSize, rotation, and displayId. You can set the parameters separately.
callback AsyncCallback<image.PixelMap> Yes Callback used to return a PixelMap object.

Error codes

For details about the error codes, see Display Error Codes.

ID Error Message
1400001 Invalid display or screen.

Example

import { BusinessError } from '@ohos.base';
import image from '@ohos.multimedia.image';

let screenshotOptions: screenshot.ScreenshotOptions = {
  "screenRect": {
    "left": 200,
    "top": 100,
    "width": 200,
    "height": 200 },
  "imageSize": {
    "width": 300,
    "height": 300 },
  "rotation": 0,
  "displayId": 0
};
try {
  screenshot.save(screenshotOptions, (err: BusinessError, pixelMap: image.PixelMap) => {
    if (err) {
      console.log('Failed to save screenshot. Code: ' + JSON.stringify(err));
      return;
    }
    console.log('Succeeded in saving screenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
    pixelMap.release(); // Release the memory in time after the PixelMap is used.
  });
} catch (exception) {
  console.error('Failed to save screenshot. Code: ' + JSON.stringify(exception));
};

screenshot.save

save(callback: AsyncCallback<image.PixelMap>): void

Takes a screenshot and saves it as a PixelMap object. This API uses an asynchronous callback to return the result.

System capability: SystemCapability.WindowManager.WindowManager.Core

Required permissions: ohos.permission.CAPTURE_SCREEN (available only to system applications)

Parameters

Name Type Mandatory Description
callback AsyncCallback<image.PixelMap> Yes Callback used to return a PixelMap object.

Example

import { BusinessError } from '@ohos.base';
import image from '@ohos.multimedia.image';

try {
  screenshot.save((err: BusinessError, pixelMap: image.PixelMap) => {
    if (err) {
      console.log('Failed to save screenshot. Code: ' + JSON.stringify(err));
      return;
    }
    console.log('Succeeded in saving screenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
    pixelMap.release(); // Release the memory in time after the PixelMap is used.
  });
} catch (exception) {
  console.error('Failed to save screenshot. Code: ' + JSON.stringify(exception));
};

screenshot.save

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

Takes a screenshot and saves it as a PixelMap object. This API uses a promise to return the result.

System capability: SystemCapability.WindowManager.WindowManager.Core

Required permissions: ohos.permission.CAPTURE_SCREEN (available only to system applications)

Parameters

Name Type Mandatory Description
options ScreenshotOptions No Screenshot settings consist of screenRect, imageSize, rotation, and displayId. You can set the parameters separately.

Return value

Type Description
Promise<image.PixelMap> Promise used to return a PixelMap object.

Example

import { BusinessError } from '@ohos.base';
import image from '@ohos.multimedia.image';

let screenshotOptions: screenshot.ScreenshotOptions = {
  "screenRect": {
    "left": 200,
    "top": 100,
    "width": 200,
    "height": 200 },
  "imageSize": {
    "width": 300,
    "height": 300 },
  "rotation": 0,
  "displayId": 0
};
try {
  let promise = screenshot.save(screenshotOptions);
  promise.then((pixelMap: image.PixelMap) => {
    console.log('Succeeded in saving screenshot. Pixel bytes number: ' + pixelMap.getPixelBytesNumber());
    pixelMap.release(); // Release the memory in time after the PixelMap is used.
  }).catch((err: BusinessError) => {
    console.log('Failed to save screenshot. Code: ' + JSON.stringify(err));
  });
} catch (exception) {
  console.error('Failed to save screenshot. Code: ' + JSON.stringify(exception));
};