Răsfoiți Sursa

Release MergeImageFace.

sdk-team 3 ani în urmă
părinte
comite
12ce668e31

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1535
+1.36.1536

+ 13 - 0
facebody/include/alibabacloud/facebody/model/AddFaceImageTemplateResult.h

@@ -34,6 +34,19 @@ namespace AlibabaCloud
 			public:
 				struct Data
 				{
+					struct FaceInfosItem
+					{
+						struct FaceRect
+						{
+							std::string x;
+							std::string y;
+							std::string height;
+							std::string width;
+						};
+						FaceRect faceRect;
+						std::string templateFaceID;
+					};
+					std::vector<FaceInfosItem> faceInfos;
 					std::string templateId;
 				};
 

+ 13 - 0
facebody/include/alibabacloud/facebody/model/MergeImageFaceRequest.h

@@ -28,10 +28,16 @@ namespace Facebody {
 namespace Model {
 class ALIBABACLOUD_FACEBODY_EXPORT MergeImageFaceRequest : public RpcServiceRequest {
 public:
+	struct MergeInfos {
+		std::string imageURL;
+		std::string templateFaceID;
+	};
 	MergeImageFaceRequest();
 	~MergeImageFaceRequest();
 	bool getFormatResultToJson() const;
 	void setFormatResultToJson(bool formatResultToJson);
+	std::vector<MergeInfos> getMergeInfos() const;
+	void setMergeInfos(const std::vector<MergeInfos> &mergeInfos);
 	std::string getUserId() const;
 	void setUserId(const std::string &userId);
 	std::string getOssFile() const;
@@ -42,14 +48,21 @@ public:
 	void setRequestProxyBy(const std::string &requestProxyBy);
 	std::string getImageURL() const;
 	void setImageURL(const std::string &imageURL);
+	bool getAddWatermark() const;
+	void setAddWatermark(bool addWatermark);
+	std::string getModelVersion() const;
+	void setModelVersion(const std::string &modelVersion);
 
 private:
 	bool formatResultToJson_;
+	std::vector<MergeInfos> mergeInfos_;
 	std::string userId_;
 	std::string ossFile_;
 	std::string templateId_;
 	std::string requestProxyBy_;
 	std::string imageURL_;
+	bool addWatermark_;
+	std::string modelVersion_;
 };
 } // namespace Model
 } // namespace Facebody

+ 13 - 0
facebody/include/alibabacloud/facebody/model/QueryFaceImageTemplateResult.h

@@ -36,10 +36,23 @@ namespace AlibabaCloud
 				{
 					struct ElementsItem
 					{
+						struct FaceInfosItem
+						{
+							struct FaceRect
+							{
+								std::string x;
+								std::string y;
+								std::string height;
+								std::string width;
+							};
+							FaceRect faceRect;
+							std::string templateFaceID;
+						};
 						std::string templateURL;
 						std::string userId;
 						std::string createTime;
 						std::string updateTime;
+						std::vector<ElementsItem::FaceInfosItem> faceInfos;
 						std::string templateId;
 					};
 					std::vector<ElementsItem> elements;

+ 17 - 0
facebody/src/model/AddFaceImageTemplateResult.cc

@@ -42,6 +42,23 @@ void AddFaceImageTemplateResult::parse(const std::string &payload)
 	auto dataNode = value["Data"];
 	if(!dataNode["TemplateId"].isNull())
 		data_.templateId = dataNode["TemplateId"].asString();
+	auto allFaceInfosNode = dataNode["FaceInfos"]["FaceInfosItem"];
+	for (auto dataNodeFaceInfosFaceInfosItem : allFaceInfosNode)
+	{
+		Data::FaceInfosItem faceInfosItemObject;
+		if(!dataNodeFaceInfosFaceInfosItem["TemplateFaceID"].isNull())
+			faceInfosItemObject.templateFaceID = dataNodeFaceInfosFaceInfosItem["TemplateFaceID"].asString();
+		auto faceRectNode = value["FaceRect"];
+		if(!faceRectNode["X"].isNull())
+			faceInfosItemObject.faceRect.x = faceRectNode["X"].asString();
+		if(!faceRectNode["Y"].isNull())
+			faceInfosItemObject.faceRect.y = faceRectNode["Y"].asString();
+		if(!faceRectNode["Height"].isNull())
+			faceInfosItemObject.faceRect.height = faceRectNode["Height"].asString();
+		if(!faceRectNode["Width"].isNull())
+			faceInfosItemObject.faceRect.width = faceRectNode["Width"].asString();
+		data_.faceInfos.push_back(faceInfosItemObject);
+	}
 	if(!value["Code"].isNull())
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())

+ 32 - 0
facebody/src/model/MergeImageFaceRequest.cc

@@ -34,6 +34,20 @@ void MergeImageFaceRequest::setFormatResultToJson(bool formatResultToJson) {
   setParameter(std::string("FormatResultToJson"), formatResultToJson ? "true" : "false");
 }
 
+std::vector<MergeImageFaceRequest::MergeInfos> MergeImageFaceRequest::getMergeInfos() const {
+  return mergeInfos_;
+}
+
+void MergeImageFaceRequest::setMergeInfos(const std::vector<MergeImageFaceRequest::MergeInfos> &mergeInfos) {
+  mergeInfos_ = mergeInfos;
+  for(int dep1 = 0; dep1 != mergeInfos.size(); dep1++) {
+  auto mergeInfosObj = mergeInfos.at(dep1);
+  std::string mergeInfosObjStr = std::string("MergeInfos") + "." + std::to_string(dep1 + 1);
+    setBodyParameter(mergeInfosObjStr + ".ImageURL", mergeInfosObj.imageURL);
+    setBodyParameter(mergeInfosObjStr + ".TemplateFaceID", mergeInfosObj.templateFaceID);
+  }
+}
+
 std::string MergeImageFaceRequest::getUserId() const {
   return userId_;
 }
@@ -79,3 +93,21 @@ void MergeImageFaceRequest::setImageURL(const std::string &imageURL) {
   setBodyParameter(std::string("ImageURL"), imageURL);
 }
 
+bool MergeImageFaceRequest::getAddWatermark() const {
+  return addWatermark_;
+}
+
+void MergeImageFaceRequest::setAddWatermark(bool addWatermark) {
+  addWatermark_ = addWatermark;
+  setBodyParameter(std::string("AddWatermark"), addWatermark ? "true" : "false");
+}
+
+std::string MergeImageFaceRequest::getModelVersion() const {
+  return modelVersion_;
+}
+
+void MergeImageFaceRequest::setModelVersion(const std::string &modelVersion) {
+  modelVersion_ = modelVersion;
+  setBodyParameter(std::string("ModelVersion"), modelVersion);
+}
+

+ 17 - 0
facebody/src/model/QueryFaceImageTemplateResult.cc

@@ -54,6 +54,23 @@ void QueryFaceImageTemplateResult::parse(const std::string &payload)
 			elementsItemObject.templateId = dataNodeElementsElementsItem["TemplateId"].asString();
 		if(!dataNodeElementsElementsItem["TemplateURL"].isNull())
 			elementsItemObject.templateURL = dataNodeElementsElementsItem["TemplateURL"].asString();
+		auto allFaceInfosNode = dataNodeElementsElementsItem["FaceInfos"]["FaceInfosItem"];
+		for (auto dataNodeElementsElementsItemFaceInfosFaceInfosItem : allFaceInfosNode)
+		{
+			Data::ElementsItem::FaceInfosItem faceInfosObject;
+			if(!dataNodeElementsElementsItemFaceInfosFaceInfosItem["TemplateFaceID"].isNull())
+				faceInfosObject.templateFaceID = dataNodeElementsElementsItemFaceInfosFaceInfosItem["TemplateFaceID"].asString();
+			auto faceRectNode = value["FaceRect"];
+			if(!faceRectNode["X"].isNull())
+				faceInfosObject.faceRect.x = faceRectNode["X"].asString();
+			if(!faceRectNode["Y"].isNull())
+				faceInfosObject.faceRect.y = faceRectNode["Y"].asString();
+			if(!faceRectNode["Height"].isNull())
+				faceInfosObject.faceRect.height = faceRectNode["Height"].asString();
+			if(!faceRectNode["Width"].isNull())
+				faceInfosObject.faceRect.width = faceRectNode["Width"].asString();
+			elementsItemObject.faceInfos.push_back(faceInfosObject);
+		}
 		data_.elements.push_back(elementsItemObject);
 	}
 	if(!value["Code"].isNull())