---
title: 图片解码
description: "通过对输入图片数据进行解码处理，将本地图片或图片数据转换为Image类，用于后续前处理和推理业务，类型目前支持JPEG和PNG格式。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/msadg/mxvisionug_0024.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/msadg/mxvisionug_0024.html
indexId: 3422a09c550e633f99dece434ef1b49a2b297420054a562e03bb1d6a6ca996cb102
---
# 图片解码

#### 功能介绍

通过对输入图片数据进行解码处理，将本地图片或图片数据转换为Image类，用于后续前处理和推理业务，类型目前支持JPEG和PNG格式。


#### 接口调用流程

用户需准备好本地待解码的图片文件或待解码的图片数据，初始化ImageProcessor类，构造输出的Image对象，通过调用ImageProcessor类的Decode接口解码结果。

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

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

关键步骤说明如下：

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

3. 构造输出的Image对象。
  使用构造函数Image()存放待解码输出的图片对象。

4. 准备数据。
  根据业务需求选择从文件加载图片或从内存加载图片数据。

5. 调用  Decode()
接口对图片进行解码。
  用户需根据输如的不同数据类型，调用对应的Decode接口。

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


#### 示例代码

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

```
//初始化
MxInit();
{
//构造图像处理类
ImageProcessor imageProcessor(deviceId);
//（可选）初始化解码通道
imageProcessor.InitJpegDecodeChannel();
//图像解码
//解码后的图像类
Image decodedImage;
//根据图像路径进行解码
APP_ERROR ret = imageProcessor.Decode(imagePath, decodedImage, ImageFormat::YUV_SP_420);
if (ret != APP_ERR_OK) {
return 0;
}
}
//去初始化
MxDeInit();
```
