1e41f4b71Sopenharmony_ci# Graphics Subsystem Changelog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## cl.graphic.1 **getPixelMap** Replaced by **getEffectPixelMap**
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci**Access Level**
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciPublic
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci**Reason for Change**
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci**getPixelMap** is a synchronous API. Its running takes a long time and may block the main thread. Therefore, it is deprecated and replaced by an asynchronous API.
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci**Change Impact**
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciThe change is not compatible with earlier versions. Use the new API in your code.
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci**API Level**
18e41f4b71Sopenharmony_ci9
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci**Deprecated Since**
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ciOpenHarmony SDK 4.1.5.5
23e41f4b71Sopenharmony_ci
24e41f4b71Sopenharmony_ci**Deprecated APIs**
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci| API                                                    | Description                                                    | Substitute API                                                    |
27e41f4b71Sopenharmony_ci| ------------------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
28e41f4b71Sopenharmony_ci| getPixelMap():image.PixelMap; | This API takes a long time and is replaced by an asynchronous API.  | getEffectPixelMap():Promise<image.PixelMap>; |
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**Adaptation Guide**
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ciIn the sample code below:
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci```ts
35e41f4b71Sopenharmony_ciimport image from "@ohos.multimedia.image";
36e41f4b71Sopenharmony_ciimport effectKit from "@ohos.effectKit";
37e41f4b71Sopenharmony_ci
38e41f4b71Sopenharmony_ciconst color = new ArrayBuffer(96);
39e41f4b71Sopenharmony_cilet opts : image.InitializationOptions = {
40e41f4b71Sopenharmony_ci  editable: true,
41e41f4b71Sopenharmony_ci  pixelFormat: 3,
42e41f4b71Sopenharmony_ci  size: {
43e41f4b71Sopenharmony_ci    height: 4,
44e41f4b71Sopenharmony_ci    width: 6
45e41f4b71Sopenharmony_ci  }
46e41f4b71Sopenharmony_ci};
47e41f4b71Sopenharmony_ciimage.createPixelMap(color, opts).then((pixelMap) => {
48e41f4b71Sopenharmony_ci  let pixel = effectKit.createEffect(pixelMap).grayscale().getPixelMap();
49e41f4b71Sopenharmony_ci  console.log('getPixelBytesNumber = ', pixel.getPixelBytesNumber());
50e41f4b71Sopenharmony_ci})
51e41f4b71Sopenharmony_ci```
52e41f4b71Sopenharmony_ciBefore change:
53e41f4b71Sopenharmony_ci```ts
54e41f4b71Sopenharmony_cilet pixel = effectKit.createEffect(pixelMap).grayscale().getPixelMap();
55e41f4b71Sopenharmony_ci```
56e41f4b71Sopenharmony_ciAfter change:
57e41f4b71Sopenharmony_ci```ts
58e41f4b71Sopenharmony_cieffectKit.createEffect(pixelMap).grayscale().getEffectPixelMap().then(data => {
59e41f4b71Sopenharmony_ci    let pixel = data;
60e41f4b71Sopenharmony_ci}).catch(ex => console.log("getEffectPixelMap error: " + ex.toString()));
61e41f4b71Sopenharmony_ci```
62e41f4b71Sopenharmony_ciIn summary, replace **getPixelMap** with **getEffectPixelMap**, and use a promise to receive the **pixelMap** object.
63e41f4b71Sopenharmony_ci
64