本文为您介绍如何快速将美颜特效SDK(Windows版本)集成到项目中。
前提条件
开发环境要求如下:
类别 |
说明 |
操作系统 |
Windows 7及以上版本。 |
开发环境 |
Visual Studio 2010及以上版本,推荐使⽤Visual Studio 2017。 |
集成美颜特效SDK(C++)
本节以Visual Studio 2017创建⼀个简单的VC++控制台应⽤项⽬,并在项⽬中集成美颜特效SDK(C++)为例,介绍如何集成SDK并运行程序。
- 点击链接,下载SDK。
解压SDK并打开,包含以下文件。
目录名 |
说明 |
include |
详细接口注释的API头文件。 |
lib |
编译使⽤的.lib⽂件和运⾏时加载的.dll⽂件。
|
queen_res |
必要的运⾏资源⽂件。 |
res |
效果素材资源,如果使⽤⾃定义素材,可以不添加。 |
- 新建工程。
打开Visual Studio,新建⼀个AliyunQueenSDKDemo的VC++ Windows桌⾯控制台应⽤程序项⽬,如下图所示。

- 拷贝文件。
在
AliyunQueenSDKDemo.vcxproj所在⽬录下创建名为
AliyunQueenSDK的⽂件夹。将解压后的SDK文件拷贝到新建的
AliyunQueenSDK文件夹中,如下所示。


- 修改工程配置。
单击打开AliyunQueenSDKDemo属性⻚, 按以下步骤进⾏配置。
- 添加包含目录。单击,添加SDK头文件目录$(ProjectDir)AliyunQueenSDK\include,如下所示。

- 添加库目录。单击,添加SDK库目录$(ProjectDir)AliyunQueenSDK\lib\$(PlatformShortName),如下所示。

- 添加库文件。单击,添加SDK库文件queen.lib,如下所示。

- 添加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

- 调用SDK接口,运行程序。
- 将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;
}
- 按键盘F5键运⾏程序,成功编译后会启动控制台,如下图所示。

功能示例
- 初始化引擎。
// 创建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;
}
- 启⽤效果并设置效果参数。
// 开启磨⽪功能
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]
- 处理图像数据。
// 处理图像帧数据, 处理后的帧数据返回到bufferOut上
if (QUEEN_RESULT_CODE_OK != queen_engine_render_with_i420(handle_beauty,
bufferIn, width, height, bufferOut))
{
return;
}
- 销毁引擎。
// 释放引擎,确保当前线程与执⾏queen_engine_render_with_i420:是同⼀条线程
queen_engine_destory(handle_beauty);
// 移除GL环境
delete glWindow;
参考资料
- 更多功能使⽤示例可参考SDK压缩包⽬录下的ConsoleDemo/AliyunQueenSDKDemo/AliyunQueenSDKDemo/AliyunQueenSDKDemo.cpp文件。
- 接口说明,详细内容请参见Win接口说明。