---
title: 图片编码
description: "将接口输出的Image对象编码为JPG格式的图片保存到指定的图片路径。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/msadg/mxvisionug_0049.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/msadg/mxvisionug_0049.html
indexId: 0559a0767010ddc750b6e8a0d6b02c27c137d67ed49e936434fe8d378b3986a8102
---
# 图片编码

#### 功能介绍

将接口输出的Image对象编码为JPG格式的图片保存到指定的图片路径。


#### 接口调用流程

用户需提前准备好待编码的Image对象，可以通过图片解码以及图像处理接口（抠图、缩放、补边等操作对应接口）输出，输出到本地图片。

图片编码调用流程参考如下：

图1 图片编码接口调用流程

关键步骤说明如下：

1. 调用  mx_init()
接口进行全局初始化。
2. ImageProcessor初始化。
  用户构造ImageProcessor对象，构造时需用户指定设备ID。

3. 使用图片解码接口对输入图片进行解码。
  根据业务对图片进行解码，生成可编码的Image对象。后续可以通过图像处理接口对图片进行处理，生成最终需要编码的Image对象。

4. 调用  encode
接口对输入图片进行编码。
  用户需根据实际业务情况输出图片数据，指定待输出的Image和输出路径。


#### 示例代码

以下为功能特性关键步骤的代码示例，不可以直接拷贝运行，仅供参考。

```
from mindx.sdk import base
from mindx.sdk.base import ImageProcessor, Rect, Image
# 图像解码
# 初始化ImageProcessor对象
imageProcessor = ImageProcessor(device_id)
image_path = "image_data/test_image.jpg"
# 读取图片路径进行解码，解码格式为nv12（YUV_SP_420）
decoded_image = imageProcessor.decode(image_path, base.nv12)
# 图像处理操作（抠图）
crop_para = [Rect(300, 100, 550, 350)]
croped_images = imageProcessor.crop(decoded_image, crop_para)
image_save_path = "croped_image.jpg"
imageProcessor.encode(croped_images[0], image_save_path)
```
