1# Introduction to Image Kit 2 3Image development is the process of parsing, processing, and constructing image pixel data to achieve the required image effect. Image development mainly involves image decoding, processing, and encoding. 4 5Before image development, be familiar with the following basic concepts: 6 7- Image decoding 8 9 The operation of decoding an archived image in a supported format into a PixelMap for image display or processing. 10 11- PixelMap 12 13 A bitmap that is not compressed after being decoded. It is used for image display or processing. 14 15- Picture 16 17 An object that includes a main picture and auxiliary picture. It is used for picture display or processing. 18 19- Image processing 20 21 A series of operations on the PixelMap, such as rotation, scaling, opacity setting, image information obtaining, and pixel data reading and writing. 22 23- Image encoding 24 25 The operation of encoding a PixelMap into an archived image in different formats for subsequent processing, such as storage and transmission. 26 27The figure below illustrates the image development process. 28 29**Figure 1** Image development process 30 31 32 331. Image retrieval: Obtain a raw image through the application sandbox. 34 352. Instance creation: Create an **ImageSource** instance, which is the source class of decoded images and is used to obtain or modify image information. 36 373. [Image decoding](image-decoding.md): Decode the image source to generate a PixelMap. 38 394. [Image processing](image-transformation.md): Process the PixelMap by modifying the image attributes to implement image rotation, scaling, and cropping, and then use the [Image component](../../ui/arkts-graphics-display.md) to display the image. 40 415. [Image encoding](image-encoding.md): Use the **ImagePacker** class to compress and encode the PixelMap or image source to generate a new image. 42 43In addition to the preceding basic image development capabilities, OpenHarmony provides the [image tool](image-tool.md) to ease your development. 44 45## Highlights 46 47Image Kit supports multiple image formats and uses efficient algorithms and optimization policies to speed up image processing. 48 49## Constraints 50 51- **Constraints on read and write permissions:** 52 53 During image processing, applications may need to request the read and write permissions from users on images. 54 55- **Selecting appropriate C APIs** 56 57 The image framework provides two sets of C APIs: [C APIs dependent on JS objects](../../reference/apis-image-kit/image.md) and [C APIs independent of JS objects](../../reference/apis-image-kit/_image___native_module.md). 58 - C APIs that depend on JS objects 59 60 These APIs are used to encode and decode images, receive images, and process image data. Example code related to these functionalities is provided in [Using Image to Decode Images](image-decoding-native.md). You can find these APIs in [Image](../../reference/apis-image-kit/image.md). These APIs are introduced prior to API version 11, and no additional features will be included in later versions. 61 62 - C APIs independent of JS objects 63 64 In addition to the functionalities mentioned above, these APIs implements new features such as picture encoding and decoding. For details about the development guide, see [Using Image_NativeModule to Decode Images](image-source-c.md). You can find these APIs in [Image_NativeModule](../../reference/apis-image-kit/_image___native_module.md). These APIs are available since API version 12 and are expected to keep evolving. You are encouraged to use them. 65 66 > **NOTE** 67 > 68 > You are not advised to use both sets of C APIs in your code. It may cause compatibility issues in some scenarios. 69 70## Related Kits 71 72The image framework provides the image encoding and decoding capabilities for the **Image** component and the Gallery application. The decoding result can be sent to the [**Image** component](../../ui/arkts-graphics-display.md) for display. 73 74