本文为您介绍如何快速将美颜特效SDK(Windows版本)集成到项目中。

前提条件

开发环境要求如下:
类别 说明
操作系统 Windows 7及以上版本。
开发环境 Visual Studio 2010及以上版本,推荐使⽤Visual Studio 2017。

集成美颜特效SDK(C++)

本节以Visual Studio 2017创建⼀个简单的VC++控制台应⽤项⽬,并在项⽬中集成美颜特效SDK(C++)为例,介绍如何集成SDK并运行程序。

  1. 点击链接,下载SDK。
    解压SDK并打开,包含以下文件。
    目录名 说明
    include 详细接口注释的API头文件。
    lib 编译使⽤的.lib⽂件和运⾏时加载的.dll⽂件。
    queen_res 必要的运⾏资源⽂件。
    res 效果素材资源,如果使⽤⾃定义素材,可以不添加。
  2. 新建工程。
    打开Visual Studio,新建⼀个AliyunQueenSDKDemo的VC++ Windows桌⾯控制台应⽤程序项⽬,如下图所示。 AliyunQueenSDKDemo
  3. 拷贝文件。
    AliyunQueenSDKDemo.vcxproj所在⽬录下创建名为 AliyunQueenSDK的⽂件夹。将解压后的SDK文件拷贝到新建的 AliyunQueenSDK文件夹中,如下所示。 AliyunQueenSDK AliyunQueenSDK
  4. 修改工程配置。
    单击 解决⽅案资源管理器 > 右键AliyunQueenSDKDemo⼯程的菜单 > 属性打开AliyunQueenSDKDemo属性⻚, 按以下步骤进⾏配置。
    1. 添加包含目录。单击C/C++ > 常规 > 附加包含⽬录,添加SDK头文件目录$(ProjectDir)AliyunQueenSDK\include,如下所示。附加包含目录
    2. 添加库目录。单击链接器 > 常规 > 附加库⽬录,添加SDK库目录$(ProjectDir)AliyunQueenSDK\lib\$(PlatformShortName),如下所示。附加库目录
    3. 添加库文件。单击链接器 > 输入 > 附加依赖项,添加SDK库文件queen.lib,如下所示。附加依赖项
    4. 添加copy命令。单击生成事件 > 后期生成事件 > 命令行添加拷贝命令,命令和操作如下所示。
      说明 添加拷贝命令能够在编译完成后,⾃动将SDK的 .dll⽂件和必要的 queen_res资源⽂件夹以及可选的 res资源⽂件夹拷⻉到程序的运⾏⽬录下。

      xcopy "$(ProjectDir)AliyunQueenSDK\lib\$(PlatformShortName)\*.dll" "$(TargetDir)" /y

      xcopy "$(ProjectDir)AliyunQueenSDK\queen_res" "$(TargetDir)queen_res" /i /s /y

      xcopy "$(ProjectDir)AliyunQueenSDK\res" "$(TargetDir)res" /i /s /y

      命令行
  5. 调用SDK接口,运行程序。
    1. 将AliyunQueenSDKDemo.cpp内容替换为下方代码。
      #include 
      #include "queen_engine.h"
      using namespace queen;
      using namespace std;
      int main()
      {
      const char* queenSDKVersion = queen_engine_getSDKVersion();
      cout << "Hello QueenEngine: " << queenSDKVersion << endl;
      }
    2. 按键盘F5键运⾏程序,成功编译后会启动控制台,如下图所示。运行程序

功能示例

  1. 初始化引擎。
    // 创建GL环境,如果已有GL环境可以忽略
    queen::GlfwWindow* glWindow = new queen::GlfwWindow();//gl环境
    if (!glWindow->Init(width, height, false))//⽤户电脑可能没装显卡驱动
    {
       return;
    }
    // 创建美颜引擎
    // rootPath 美颜资源路径:queen_res的上级⽬录(不传默认为exe⽬录)
    queen_engine_t handle_beauty;
    if (QUEEN_RESULT_CODE_OK != queen_engine_create(&handle_beauty, rootPath,
    "123456"))
    {
       return;
    }
  2. 启⽤效果并设置效果参数。
    // 开启磨⽪功能
    queen_engine_enableBeautyType(handle_beauty, kQueenBeautyTypeSkinBuffing,
    true);
    // 设置磨⽪锐化参数
    queen_engine_setBeautyParams(handle_beauty,
    kQueenBeautyParamsSkinBuffing, 0.6f); //磨⽪[0,1]
    queen_engine_setBeautyParams(handle_beauty, kQueenBeautyParamsSharpen,
    0.8f); ////锐化[0,1]
  3. 处理图像数据。
    // 处理图像帧数据, 处理后的帧数据返回到bufferOut上
    if (QUEEN_RESULT_CODE_OK != queen_engine_render_with_i420(handle_beauty,
    bufferIn, width, height, bufferOut))
    {
       return;
    }
  4. 销毁引擎。
    // 释放引擎,确保当前线程与执⾏queen_engine_render_with_i420:是同⼀条线程
    queen_engine_destory(handle_beauty);
    // 移除GL环境
    delete glWindow;

参考资料

  • 更多功能使⽤示例可参考SDK压缩包⽬录下的ConsoleDemo/AliyunQueenSDKDemo/AliyunQueenSDKDemo/AliyunQueenSDKDemo.cpp文件。
  • 接口说明,详细内容请参见Win接口说明