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

#### 功能介绍

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


#### 接口调用流程

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

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

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

关键步骤说明如下：

1. 调用  MxInit()
接口进行全局初始化。
2. ImageProcessor构造及初始化。
  用户构造ImageProcessor对象，之后可以调用InitJpegEncodeChannel()初始化通道，若不调用该接口，ImageProcessor会在执行编码前自动进行通道初始化。

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

4. 调用  Encode()
接口对输入图片进行编码。
  用户需根据实际业务情况输出图片数据，选择输出到文件或输出到内存。

5. 调用  MxDeInit()
接口对初始化的全局资源进行去初始化。


#### 示例代码

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

```
//初始化
MxInit();
{
//构造图像处理类
ImageProcessor
imageProcessor
(deviceId);
//图像解码/图像处理操作生成Image
//解码后的图像类
Image decodedImage;
//根据图像路径进行解码
APP_ERROR ret = imageProcessor.
Decode
(imagePath, decodedImage);
if (ret != APP_ERR_OK) {
return 0;
}
//图像处理操作后图像类
Image
resizedImage
;
//图像处理操作（缩放）
ret = imageProcessor.
Resize
(decodedImage, Size(416, 416),
resizedImage
, Interpolation::HUAWEI_HIGH_ORDER_FILTER);
if (ret != APP_ERR_OK) {
return 0;
}
//（可选）初始化编码通道JpegEncodeChnConfig jpegEncodeChnConfig;
JpegEncodeChnConfig.maxPicWidth = 4096;
JpegEncodeChnConfig.maxPicHeight = 4096;
imageProcessor.InitJpegEncodeChannel(JpegEncodeChnConfig);
//图像编码
ret = imageProcessor.
Encode
(resizedImage,"encode.jpg");
if (ret != APP_ERR_OK) {
return 0;
}
}
//去初始化
MxDeInit();
```
