diff --git a/CHANGELOG b/CHANGELOG index ccfec1f92..f7ce11d80 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +2020-06-29 Version: 1.36.485 +- Supported Rotate. + 2020-06-29 Version: 1.36.484 - Add Model Parameter For InitFaceVerify API. diff --git a/VERSION b/VERSION index a893b183e..70dcf9f41 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.484 \ No newline at end of file +1.36.485 \ No newline at end of file diff --git a/imm/CMakeLists.txt b/imm/CMakeLists.txt index 00edbc622..f7c027441 100644 --- a/imm/CMakeLists.txt +++ b/imm/CMakeLists.txt @@ -93,8 +93,6 @@ set(imm_public_header_model include/alibabacloud/imm/model/EncodeBlindWatermarkResult.h include/alibabacloud/imm/model/FindImagesRequest.h include/alibabacloud/imm/model/FindImagesResult.h - include/alibabacloud/imm/model/FindImagesByTagNamesRequest.h - include/alibabacloud/imm/model/FindImagesByTagNamesResult.h include/alibabacloud/imm/model/FindSimilarFacesRequest.h include/alibabacloud/imm/model/FindSimilarFacesResult.h include/alibabacloud/imm/model/GetContentKeyRequest.h @@ -248,8 +246,6 @@ set(imm_src src/model/EncodeBlindWatermarkResult.cc src/model/FindImagesRequest.cc src/model/FindImagesResult.cc - src/model/FindImagesByTagNamesRequest.cc - src/model/FindImagesByTagNamesResult.cc src/model/FindSimilarFacesRequest.cc src/model/FindSimilarFacesResult.cc src/model/GetContentKeyRequest.cc diff --git a/imm/include/alibabacloud/imm/ImmClient.h b/imm/include/alibabacloud/imm/ImmClient.h index f40f1c051..6abc79f47 100644 --- a/imm/include/alibabacloud/imm/ImmClient.h +++ b/imm/include/alibabacloud/imm/ImmClient.h @@ -94,8 +94,6 @@ #include "model/EncodeBlindWatermarkResult.h" #include "model/FindImagesRequest.h" #include "model/FindImagesResult.h" -#include "model/FindImagesByTagNamesRequest.h" -#include "model/FindImagesByTagNamesResult.h" #include "model/FindSimilarFacesRequest.h" #include "model/FindSimilarFacesResult.h" #include "model/GetContentKeyRequest.h" @@ -291,9 +289,6 @@ namespace AlibabaCloud typedef Outcome FindImagesOutcome; typedef std::future FindImagesOutcomeCallable; typedef std::function&)> FindImagesAsyncHandler; - typedef Outcome FindImagesByTagNamesOutcome; - typedef std::future FindImagesByTagNamesOutcomeCallable; - typedef std::function&)> FindImagesByTagNamesAsyncHandler; typedef Outcome FindSimilarFacesOutcome; typedef std::future FindSimilarFacesOutcomeCallable; typedef std::function&)> FindSimilarFacesAsyncHandler; @@ -524,9 +519,6 @@ namespace AlibabaCloud FindImagesOutcome findImages(const Model::FindImagesRequest &request)const; void findImagesAsync(const Model::FindImagesRequest& request, const FindImagesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; FindImagesOutcomeCallable findImagesCallable(const Model::FindImagesRequest& request) const; - FindImagesByTagNamesOutcome findImagesByTagNames(const Model::FindImagesByTagNamesRequest &request)const; - void findImagesByTagNamesAsync(const Model::FindImagesByTagNamesRequest& request, const FindImagesByTagNamesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; - FindImagesByTagNamesOutcomeCallable findImagesByTagNamesCallable(const Model::FindImagesByTagNamesRequest& request) const; FindSimilarFacesOutcome findSimilarFaces(const Model::FindSimilarFacesRequest &request)const; void findSimilarFacesAsync(const Model::FindSimilarFacesRequest& request, const FindSimilarFacesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; FindSimilarFacesOutcomeCallable findSimilarFacesCallable(const Model::FindSimilarFacesRequest& request) const; diff --git a/imm/include/alibabacloud/imm/model/FindImagesByTagNamesRequest.h b/imm/include/alibabacloud/imm/model/FindImagesByTagNamesRequest.h deleted file mode 100644 index dd5062fa7..000000000 --- a/imm/include/alibabacloud/imm/model/FindImagesByTagNamesRequest.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ALIBABACLOUD_IMM_MODEL_FINDIMAGESBYTAGNAMESREQUEST_H_ -#define ALIBABACLOUD_IMM_MODEL_FINDIMAGESBYTAGNAMESREQUEST_H_ - -#include -#include -#include -#include - -namespace AlibabaCloud -{ - namespace Imm - { - namespace Model - { - class ALIBABACLOUD_IMM_EXPORT FindImagesByTagNamesRequest : public RpcServiceRequest - { - - public: - FindImagesByTagNamesRequest(); - ~FindImagesByTagNamesRequest(); - - std::string getProject()const; - void setProject(const std::string& project); - std::string getAccessKeyId()const; - void setAccessKeyId(const std::string& accessKeyId); - int getLimit()const; - void setLimit(int limit); - std::string getTagNames()const; - void setTagNames(const std::string& tagNames); - std::string getMarker()const; - void setMarker(const std::string& marker); - std::string getSetId()const; - void setSetId(const std::string& setId); - - private: - std::string project_; - std::string accessKeyId_; - int limit_; - std::string tagNames_; - std::string marker_; - std::string setId_; - - }; - } - } -} -#endif // !ALIBABACLOUD_IMM_MODEL_FINDIMAGESBYTAGNAMESREQUEST_H_ \ No newline at end of file diff --git a/imm/include/alibabacloud/imm/model/FindImagesByTagNamesResult.h b/imm/include/alibabacloud/imm/model/FindImagesByTagNamesResult.h deleted file mode 100644 index 1e9e3702d..000000000 --- a/imm/include/alibabacloud/imm/model/FindImagesByTagNamesResult.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ALIBABACLOUD_IMM_MODEL_FINDIMAGESBYTAGNAMESRESULT_H_ -#define ALIBABACLOUD_IMM_MODEL_FINDIMAGESBYTAGNAMESRESULT_H_ - -#include -#include -#include -#include -#include - -namespace AlibabaCloud -{ - namespace Imm - { - namespace Model - { - class ALIBABACLOUD_IMM_EXPORT FindImagesByTagNamesResult : public ServiceResult - { - public: - struct Frames - { - struct Address - { - std::string township; - std::string addressLine; - std::string country; - std::string city; - std::string district; - std::string province; - }; - struct FacesItem - { - struct EmotionDetails - { - float cALM; - float sCARED; - float hAPPY; - float sAD; - float sURPRISED; - float aNGRY; - float dISGUSTED; - }; - struct FaceAttributes - { - struct FaceBoundary - { - int left; - int top; - int height; - int width; - }; - struct HeadPose - { - float pitch; - float roll; - float yaw; - }; - FaceBoundary faceBoundary; - std::string beard; - float beardConfidence; - HeadPose headPose; - float raceConfidence; - std::string race; - std::string glasses; - float maskConfidence; - std::string mask; - float glassesConfidence; - }; - EmotionDetails emotionDetails; - float faceConfidence; - std::string faceId; - float attractive; - float faceQuality; - FaceAttributes faceAttributes; - float genderConfidence; - float emotionConfidence; - std::string gender; - std::string emotion; - int age; - std::string groupId; - }; - struct TagsItem - { - float tagConfidence; - std::string tagName; - int tagLevel; - std::string parentTagName; - }; - struct OCRItem - { - struct OCRBoundary - { - int left; - int left1; - int height; - int width; - }; - OCRBoundary oCRBoundary; - float oCRConfidence; - std::string oCRContents; - }; - struct CelebrityItem - { - struct CelebrityBoundary - { - int left; - int top; - int height; - int width; - }; - std::string celebrityName; - CelebrityBoundary celebrityBoundary; - std::string celebrityGender; - std::string celebrityLibraryName; - float celebrityConfidence; - }; - std::string modifyTime; - Address address; - std::string sourceType; - std::string sourceUri; - std::string facesFailReason; - std::string remarksA; - std::string addressFailReason; - std::string remarksB; - std::string addressModifyTime; - std::string imageFormat; - std::string tagsFailReason; - std::string remarksArrayB; - std::string facesModifyTime; - std::string exif; - std::string remarksC; - std::string remarksD; - int imageWidth; - std::vector celebrity; - std::string sourcePosition; - std::string remarksArrayA; - std::vector faces; - std::vector tags; - std::string addressStatus; - std::string facesStatus; - std::string createTime; - std::string tagsModifyTime; - std::string externalId; - std::string imageUri; - std::string orientation; - std::string oCRStatus; - std::string oCRModifyTime; - std::string imageTime; - std::string celebrityModifyTime; - int imageHeight; - std::string tagsStatus; - std::string oCRFailReason; - std::string celebrityFailReason; - std::string celebrityStatus; - std::vector oCR; - int fileSize; - std::string location; - }; - - - FindImagesByTagNamesResult(); - explicit FindImagesByTagNamesResult(const std::string &payload); - ~FindImagesByTagNamesResult(); - std::vector getImages()const; - std::string getSetId()const; - std::string getNextMarker()const; - - protected: - void parse(const std::string &payload); - private: - std::vector images_; - std::string setId_; - std::string nextMarker_; - - }; - } - } -} -#endif // !ALIBABACLOUD_IMM_MODEL_FINDIMAGESBYTAGNAMESRESULT_H_ \ No newline at end of file diff --git a/imm/include/alibabacloud/imm/model/FindImagesResult.h b/imm/include/alibabacloud/imm/model/FindImagesResult.h index 0c4e2bd1b..d899737c8 100644 --- a/imm/include/alibabacloud/imm/model/FindImagesResult.h +++ b/imm/include/alibabacloud/imm/model/FindImagesResult.h @@ -34,6 +34,19 @@ namespace AlibabaCloud public: struct ImagesItem { + struct ImageQuality + { + float clarityScore; + float compositionScore; + float contrastScore; + float color; + float exposure; + float overallScore; + float clarity; + float contrast; + float exposureScore; + float colorScore; + }; struct Address { std::string township; @@ -43,6 +56,19 @@ namespace AlibabaCloud std::string district; std::string province; }; + struct CroppingSuggestionItem + { + struct CroppingBoundary + { + int left; + int top; + int height; + int width; + }; + std::string aspectRatio; + float score; + CroppingBoundary croppingBoundary; + }; struct FacesItem { struct EmotionDetails @@ -129,22 +155,16 @@ namespace AlibabaCloud std::string celebrityLibraryName; float celebrityConfidence; }; - std::string modifyTime; + ImageQuality imageQuality; Address address; std::string sourceType; std::string sourceUri; std::string facesFailReason; - std::string remarksA; + std::string croppingSuggestionFailReason; std::string addressFailReason; - std::string remarksB; - std::string addressModifyTime; std::string imageFormat; - std::string tagsFailReason; std::string remarksArrayB; - std::string facesModifyTime; std::string exif; - std::string remarksC; - std::string remarksD; int imageWidth; std::vector celebrity; std::string sourcePosition; @@ -152,23 +172,37 @@ namespace AlibabaCloud std::vector faces; std::vector tags; std::string addressStatus; + std::string imageQualityModifyTime; + std::vector croppingSuggestion; + std::string imageQualityFailReason; + std::string imageUri; + std::string orientation; + std::string imageTime; + std::string croppingSuggestionModifyTime; + std::string celebrityModifyTime; + int imageHeight; + std::string tagsStatus; + std::string imageQualityStatus; + std::string celebrityFailReason; + std::string celebrityStatus; + int fileSize; + std::string modifyTime; + std::string croppingSuggestionStatus; + std::string remarksA; + std::string remarksB; + std::string addressModifyTime; + std::string tagsFailReason; + std::string facesModifyTime; + std::string remarksC; + std::string remarksD; std::string facesStatus; std::string createTime; std::string tagsModifyTime; std::string externalId; - std::string imageUri; - std::string orientation; std::string oCRStatus; std::string oCRModifyTime; - std::string imageTime; - std::string celebrityModifyTime; - int imageHeight; - std::string tagsStatus; std::string oCRFailReason; - std::string celebrityFailReason; - std::string celebrityStatus; std::vector oCR; - int fileSize; std::string location; }; diff --git a/imm/include/alibabacloud/imm/model/GetImageResult.h b/imm/include/alibabacloud/imm/model/GetImageResult.h index cf050621f..18a9b2ed8 100644 --- a/imm/include/alibabacloud/imm/model/GetImageResult.h +++ b/imm/include/alibabacloud/imm/model/GetImageResult.h @@ -32,6 +32,19 @@ namespace AlibabaCloud class ALIBABACLOUD_IMM_EXPORT GetImageResult : public ServiceResult { public: + struct ImageQuality + { + float clarityScore; + float compositionScore; + float contrastScore; + float color; + float exposure; + float overallScore; + float clarity; + float contrast; + float exposureScore; + float colorScore; + }; struct Address { std::string township; @@ -41,6 +54,19 @@ namespace AlibabaCloud std::string district; std::string province; }; + struct CroppingSuggestionItem + { + struct CroppingBoundary + { + int left; + int top; + int height; + int width; + }; + std::string aspectRatio; + float score; + CroppingBoundary croppingBoundary; + }; struct FacesItem { struct FaceAttributes @@ -132,22 +158,16 @@ namespace AlibabaCloud GetImageResult(); explicit GetImageResult(const std::string &payload); ~GetImageResult(); - std::string getModifyTime()const; + ImageQuality getImageQuality()const; Address getAddress()const; std::string getSourceType()const; std::string getSourceUri()const; std::string getFacesFailReason()const; - std::string getRemarksA()const; + std::string getCroppingSuggestionFailReason()const; std::string getAddressFailReason()const; - std::string getRemarksB()const; - std::string getAddressModifyTime()const; std::string getImageFormat()const; - std::string getTagsFailReason()const; std::string getRemarksArrayB()const; std::string getExif()const; - std::string getFacesModifyTime()const; - std::string getRemarksC()const; - std::string getRemarksD()const; int getImageWidth()const; std::vector getCelebrity()const; std::string getSourcePosition()const; @@ -155,45 +175,53 @@ namespace AlibabaCloud std::vector getFaces()const; std::vector getTags()const; std::string getAddressStatus()const; + std::string getImageQualityModifyTime()const; + std::vector getCroppingSuggestion()const; + std::string getImageQualityFailReason()const; + std::string getImageUri()const; + std::string getOrientation()const; + std::string getImageTime()const; + std::string getCroppingSuggestionModifyTime()const; + std::string getCelebrityModifyTime()const; + int getImageHeight()const; + std::string getTagsStatus()const; + std::string getImageQualityStatus()const; + std::string getCelebrityFailReason()const; + std::string getSetId()const; + std::string getCelebrityStatus()const; + int getFileSize()const; + std::string getModifyTime()const; + std::string getCroppingSuggestionStatus()const; + std::string getRemarksA()const; + std::string getRemarksB()const; + std::string getAddressModifyTime()const; + std::string getTagsFailReason()const; + std::string getFacesModifyTime()const; + std::string getRemarksC()const; + std::string getRemarksD()const; std::string getFacesStatus()const; std::string getCreateTime()const; std::string getTagsModifyTime()const; std::string getExternalId()const; - std::string getImageUri()const; - std::string getOrientation()const; std::string getOCRStatus()const; std::string getOCRModifyTime()const; - std::string getImageTime()const; - std::string getCelebrityModifyTime()const; - int getImageHeight()const; - std::string getTagsStatus()const; std::string getOCRFailReason()const; - std::string getCelebrityFailReason()const; - std::string getSetId()const; - std::string getCelebrityStatus()const; std::vector getOCR()const; - int getFileSize()const; std::string getLocation()const; protected: void parse(const std::string &payload); private: - std::string modifyTime_; + ImageQuality imageQuality_; Address address_; std::string sourceType_; std::string sourceUri_; std::string facesFailReason_; - std::string remarksA_; + std::string croppingSuggestionFailReason_; std::string addressFailReason_; - std::string remarksB_; - std::string addressModifyTime_; std::string imageFormat_; - std::string tagsFailReason_; std::string remarksArrayB_; std::string exif_; - std::string facesModifyTime_; - std::string remarksC_; - std::string remarksD_; int imageWidth_; std::vector celebrity_; std::string sourcePosition_; @@ -201,24 +229,38 @@ namespace AlibabaCloud std::vector faces_; std::vector tags_; std::string addressStatus_; + std::string imageQualityModifyTime_; + std::vector croppingSuggestion_; + std::string imageQualityFailReason_; + std::string imageUri_; + std::string orientation_; + std::string imageTime_; + std::string croppingSuggestionModifyTime_; + std::string celebrityModifyTime_; + int imageHeight_; + std::string tagsStatus_; + std::string imageQualityStatus_; + std::string celebrityFailReason_; + std::string setId_; + std::string celebrityStatus_; + int fileSize_; + std::string modifyTime_; + std::string croppingSuggestionStatus_; + std::string remarksA_; + std::string remarksB_; + std::string addressModifyTime_; + std::string tagsFailReason_; + std::string facesModifyTime_; + std::string remarksC_; + std::string remarksD_; std::string facesStatus_; std::string createTime_; std::string tagsModifyTime_; std::string externalId_; - std::string imageUri_; - std::string orientation_; std::string oCRStatus_; std::string oCRModifyTime_; - std::string imageTime_; - std::string celebrityModifyTime_; - int imageHeight_; - std::string tagsStatus_; std::string oCRFailReason_; - std::string celebrityFailReason_; - std::string setId_; - std::string celebrityStatus_; std::vector oCR_; - int fileSize_; std::string location_; }; diff --git a/imm/include/alibabacloud/imm/model/GetMediaMetaResult.h b/imm/include/alibabacloud/imm/model/GetMediaMetaResult.h index 883cc9741..aae2e8d62 100644 --- a/imm/include/alibabacloud/imm/model/GetMediaMetaResult.h +++ b/imm/include/alibabacloud/imm/model/GetMediaMetaResult.h @@ -64,6 +64,7 @@ namespace AlibabaCloud std::string codecTag; std::string frames; std::string codecTimeBase; + std::string rotate; std::string sampleAspectRatio; std::string startTime; int index; diff --git a/imm/include/alibabacloud/imm/model/ListImagesResult.h b/imm/include/alibabacloud/imm/model/ListImagesResult.h index e2b6ec8d5..a77cc1277 100644 --- a/imm/include/alibabacloud/imm/model/ListImagesResult.h +++ b/imm/include/alibabacloud/imm/model/ListImagesResult.h @@ -34,6 +34,19 @@ namespace AlibabaCloud public: struct ImagesItem { + struct ImageQuality + { + float clarityScore; + float compositionScore; + float contrastScore; + float color; + float exposure; + float overallScore; + float clarity; + float contrast; + float exposureScore; + float colorScore; + }; struct Address { std::string township; @@ -43,6 +56,19 @@ namespace AlibabaCloud std::string district; std::string province; }; + struct CroppingSuggestionItem + { + struct CroppingBoundary + { + int left; + int top; + int height; + int width; + }; + std::string aspectRatio; + float score; + CroppingBoundary croppingBoundary; + }; struct FacesItem { struct EmotionDetails @@ -129,22 +155,16 @@ namespace AlibabaCloud std::string celebrityLibraryName; float celebrityConfidence; }; - std::string modifyTime; + ImageQuality imageQuality; Address address; std::string sourceType; std::string sourceUri; std::string facesFailReason; - std::string remarksA; + std::string croppingSuggestionFailReason; std::string addressFailReason; - std::string remarksB; - std::string addressModifyTime; std::string imageFormat; - std::string tagsFailReason; std::string remarksArrayB; - std::string facesModifyTime; std::string exif; - std::string remarksC; - std::string remarksD; int imageWidth; std::vector celebrity; std::string sourcePosition; @@ -152,23 +172,37 @@ namespace AlibabaCloud std::vector faces; std::vector tags; std::string addressStatus; + std::string imageQualityModifyTime; + std::vector croppingSuggestion; + std::string imageQualityFailReason; + std::string imageUri; + std::string orientation; + std::string imageTime; + std::string croppingSuggestionModifyTime; + std::string celebrityModifyTime; + int imageHeight; + std::string tagsStatus; + std::string imageQualityStatus; + std::string celebrityFailReason; + std::string celebrityStatus; + int fileSize; + std::string modifyTime; + std::string croppingSuggestionStatus; + std::string remarksA; + std::string remarksB; + std::string addressModifyTime; + std::string tagsFailReason; + std::string facesModifyTime; + std::string remarksC; + std::string remarksD; std::string facesStatus; std::string createTime; std::string tagsModifyTime; std::string externalId; - std::string imageUri; - std::string orientation; std::string oCRStatus; std::string oCRModifyTime; - std::string imageTime; - std::string celebrityModifyTime; - int imageHeight; - std::string tagsStatus; std::string oCRFailReason; - std::string celebrityFailReason; - std::string celebrityStatus; std::vector oCR; - int fileSize; std::string location; }; diff --git a/imm/src/ImmClient.cc b/imm/src/ImmClient.cc index 72d0c7c1a..84c83390e 100644 --- a/imm/src/ImmClient.cc +++ b/imm/src/ImmClient.cc @@ -1347,42 +1347,6 @@ ImmClient::FindImagesOutcomeCallable ImmClient::findImagesCallable(const FindIma return task->get_future(); } -ImmClient::FindImagesByTagNamesOutcome ImmClient::findImagesByTagNames(const FindImagesByTagNamesRequest &request) const -{ - auto endpointOutcome = endpointProvider_->getEndpoint(); - if (!endpointOutcome.isSuccess()) - return FindImagesByTagNamesOutcome(endpointOutcome.error()); - - auto outcome = makeRequest(endpointOutcome.result(), request); - - if (outcome.isSuccess()) - return FindImagesByTagNamesOutcome(FindImagesByTagNamesResult(outcome.result())); - else - return FindImagesByTagNamesOutcome(outcome.error()); -} - -void ImmClient::findImagesByTagNamesAsync(const FindImagesByTagNamesRequest& request, const FindImagesByTagNamesAsyncHandler& handler, const std::shared_ptr& context) const -{ - auto fn = [this, request, handler, context]() - { - handler(this, request, findImagesByTagNames(request), context); - }; - - asyncExecute(new Runnable(fn)); -} - -ImmClient::FindImagesByTagNamesOutcomeCallable ImmClient::findImagesByTagNamesCallable(const FindImagesByTagNamesRequest &request) const -{ - auto task = std::make_shared>( - [this, request]() - { - return this->findImagesByTagNames(request); - }); - - asyncExecute(new Runnable([task]() { (*task)(); })); - return task->get_future(); -} - ImmClient::FindSimilarFacesOutcome ImmClient::findSimilarFaces(const FindSimilarFacesRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/imm/src/model/FindImagesByTagNamesRequest.cc b/imm/src/model/FindImagesByTagNamesRequest.cc deleted file mode 100644 index 49b28edcd..000000000 --- a/imm/src/model/FindImagesByTagNamesRequest.cc +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include - -using AlibabaCloud::Imm::Model::FindImagesByTagNamesRequest; - -FindImagesByTagNamesRequest::FindImagesByTagNamesRequest() : - RpcServiceRequest("imm", "2017-09-06", "FindImagesByTagNames") -{ - setMethod(HttpRequest::Method::Post); -} - -FindImagesByTagNamesRequest::~FindImagesByTagNamesRequest() -{} - -std::string FindImagesByTagNamesRequest::getProject()const -{ - return project_; -} - -void FindImagesByTagNamesRequest::setProject(const std::string& project) -{ - project_ = project; - setParameter("Project", project); -} - -std::string FindImagesByTagNamesRequest::getAccessKeyId()const -{ - return accessKeyId_; -} - -void FindImagesByTagNamesRequest::setAccessKeyId(const std::string& accessKeyId) -{ - accessKeyId_ = accessKeyId; - setParameter("AccessKeyId", accessKeyId); -} - -int FindImagesByTagNamesRequest::getLimit()const -{ - return limit_; -} - -void FindImagesByTagNamesRequest::setLimit(int limit) -{ - limit_ = limit; - setParameter("Limit", std::to_string(limit)); -} - -std::string FindImagesByTagNamesRequest::getTagNames()const -{ - return tagNames_; -} - -void FindImagesByTagNamesRequest::setTagNames(const std::string& tagNames) -{ - tagNames_ = tagNames; - setParameter("TagNames", tagNames); -} - -std::string FindImagesByTagNamesRequest::getMarker()const -{ - return marker_; -} - -void FindImagesByTagNamesRequest::setMarker(const std::string& marker) -{ - marker_ = marker; - setParameter("Marker", marker); -} - -std::string FindImagesByTagNamesRequest::getSetId()const -{ - return setId_; -} - -void FindImagesByTagNamesRequest::setSetId(const std::string& setId) -{ - setId_ = setId; - setParameter("SetId", setId); -} - diff --git a/imm/src/model/FindImagesByTagNamesResult.cc b/imm/src/model/FindImagesByTagNamesResult.cc deleted file mode 100644 index dfd243e63..000000000 --- a/imm/src/model/FindImagesByTagNamesResult.cc +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright 2009-2017 Alibaba Cloud All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include - -using namespace AlibabaCloud::Imm; -using namespace AlibabaCloud::Imm::Model; - -FindImagesByTagNamesResult::FindImagesByTagNamesResult() : - ServiceResult() -{} - -FindImagesByTagNamesResult::FindImagesByTagNamesResult(const std::string &payload) : - ServiceResult() -{ - parse(payload); -} - -FindImagesByTagNamesResult::~FindImagesByTagNamesResult() -{} - -void FindImagesByTagNamesResult::parse(const std::string &payload) -{ - Json::Reader reader; - Json::Value value; - reader.parse(payload, value); - setRequestId(value["RequestId"].asString()); - auto allImagesNode = value["Images"]["Frames"]; - for (auto valueImagesFrames : allImagesNode) - { - Frames imagesObject; - if(!valueImagesFrames["FacesModifyTime"].isNull()) - imagesObject.facesModifyTime = valueImagesFrames["FacesModifyTime"].asString(); - if(!valueImagesFrames["OCRModifyTime"].isNull()) - imagesObject.oCRModifyTime = valueImagesFrames["OCRModifyTime"].asString(); - if(!valueImagesFrames["OCRStatus"].isNull()) - imagesObject.oCRStatus = valueImagesFrames["OCRStatus"].asString(); - if(!valueImagesFrames["SourcePosition"].isNull()) - imagesObject.sourcePosition = valueImagesFrames["SourcePosition"].asString(); - if(!valueImagesFrames["Exif"].isNull()) - imagesObject.exif = valueImagesFrames["Exif"].asString(); - if(!valueImagesFrames["ImageUri"].isNull()) - imagesObject.imageUri = valueImagesFrames["ImageUri"].asString(); - if(!valueImagesFrames["ImageWidth"].isNull()) - imagesObject.imageWidth = std::stoi(valueImagesFrames["ImageWidth"].asString()); - if(!valueImagesFrames["ImageFormat"].isNull()) - imagesObject.imageFormat = valueImagesFrames["ImageFormat"].asString(); - if(!valueImagesFrames["SourceType"].isNull()) - imagesObject.sourceType = valueImagesFrames["SourceType"].asString(); - if(!valueImagesFrames["ModifyTime"].isNull()) - imagesObject.modifyTime = valueImagesFrames["ModifyTime"].asString(); - if(!valueImagesFrames["FileSize"].isNull()) - imagesObject.fileSize = std::stoi(valueImagesFrames["FileSize"].asString()); - if(!valueImagesFrames["SourceUri"].isNull()) - imagesObject.sourceUri = valueImagesFrames["SourceUri"].asString(); - if(!valueImagesFrames["CreateTime"].isNull()) - imagesObject.createTime = valueImagesFrames["CreateTime"].asString(); - if(!valueImagesFrames["FacesStatus"].isNull()) - imagesObject.facesStatus = valueImagesFrames["FacesStatus"].asString(); - if(!valueImagesFrames["RemarksA"].isNull()) - imagesObject.remarksA = valueImagesFrames["RemarksA"].asString(); - if(!valueImagesFrames["ImageHeight"].isNull()) - imagesObject.imageHeight = std::stoi(valueImagesFrames["ImageHeight"].asString()); - if(!valueImagesFrames["RemarksB"].isNull()) - imagesObject.remarksB = valueImagesFrames["RemarksB"].asString(); - if(!valueImagesFrames["ImageTime"].isNull()) - imagesObject.imageTime = valueImagesFrames["ImageTime"].asString(); - if(!valueImagesFrames["Orientation"].isNull()) - imagesObject.orientation = valueImagesFrames["Orientation"].asString(); - if(!valueImagesFrames["Location"].isNull()) - imagesObject.location = valueImagesFrames["Location"].asString(); - if(!valueImagesFrames["OCRFailReason"].isNull()) - imagesObject.oCRFailReason = valueImagesFrames["OCRFailReason"].asString(); - if(!valueImagesFrames["FacesFailReason"].isNull()) - imagesObject.facesFailReason = valueImagesFrames["FacesFailReason"].asString(); - if(!valueImagesFrames["TagsFailReason"].isNull()) - imagesObject.tagsFailReason = valueImagesFrames["TagsFailReason"].asString(); - if(!valueImagesFrames["TagsModifyTime"].isNull()) - imagesObject.tagsModifyTime = valueImagesFrames["TagsModifyTime"].asString(); - if(!valueImagesFrames["CelebrityStatus"].isNull()) - imagesObject.celebrityStatus = valueImagesFrames["CelebrityStatus"].asString(); - if(!valueImagesFrames["CelebrityModifyTime"].isNull()) - imagesObject.celebrityModifyTime = valueImagesFrames["CelebrityModifyTime"].asString(); - if(!valueImagesFrames["CelebrityFailReason"].isNull()) - imagesObject.celebrityFailReason = valueImagesFrames["CelebrityFailReason"].asString(); - if(!valueImagesFrames["TagsStatus"].isNull()) - imagesObject.tagsStatus = valueImagesFrames["TagsStatus"].asString(); - if(!valueImagesFrames["ExternalId"].isNull()) - imagesObject.externalId = valueImagesFrames["ExternalId"].asString(); - if(!valueImagesFrames["RemarksC"].isNull()) - imagesObject.remarksC = valueImagesFrames["RemarksC"].asString(); - if(!valueImagesFrames["RemarksD"].isNull()) - imagesObject.remarksD = valueImagesFrames["RemarksD"].asString(); - if(!valueImagesFrames["AddressModifyTime"].isNull()) - imagesObject.addressModifyTime = valueImagesFrames["AddressModifyTime"].asString(); - if(!valueImagesFrames["AddressStatus"].isNull()) - imagesObject.addressStatus = valueImagesFrames["AddressStatus"].asString(); - if(!valueImagesFrames["AddressFailReason"].isNull()) - imagesObject.addressFailReason = valueImagesFrames["AddressFailReason"].asString(); - if(!valueImagesFrames["RemarksArrayA"].isNull()) - imagesObject.remarksArrayA = valueImagesFrames["RemarksArrayA"].asString(); - if(!valueImagesFrames["RemarksArrayB"].isNull()) - imagesObject.remarksArrayB = valueImagesFrames["RemarksArrayB"].asString(); - auto allFacesNode = allImagesNode["Faces"]["FacesItem"]; - for (auto allImagesNodeFacesFacesItem : allFacesNode) - { - Frames::FacesItem facesObject; - if(!allImagesNodeFacesFacesItem["Age"].isNull()) - facesObject.age = std::stoi(allImagesNodeFacesFacesItem["Age"].asString()); - if(!allImagesNodeFacesFacesItem["GenderConfidence"].isNull()) - facesObject.genderConfidence = std::stof(allImagesNodeFacesFacesItem["GenderConfidence"].asString()); - if(!allImagesNodeFacesFacesItem["Attractive"].isNull()) - facesObject.attractive = std::stof(allImagesNodeFacesFacesItem["Attractive"].asString()); - if(!allImagesNodeFacesFacesItem["Gender"].isNull()) - facesObject.gender = allImagesNodeFacesFacesItem["Gender"].asString(); - if(!allImagesNodeFacesFacesItem["FaceConfidence"].isNull()) - facesObject.faceConfidence = std::stof(allImagesNodeFacesFacesItem["FaceConfidence"].asString()); - if(!allImagesNodeFacesFacesItem["Emotion"].isNull()) - facesObject.emotion = allImagesNodeFacesFacesItem["Emotion"].asString(); - if(!allImagesNodeFacesFacesItem["FaceId"].isNull()) - facesObject.faceId = allImagesNodeFacesFacesItem["FaceId"].asString(); - if(!allImagesNodeFacesFacesItem["EmotionConfidence"].isNull()) - facesObject.emotionConfidence = std::stof(allImagesNodeFacesFacesItem["EmotionConfidence"].asString()); - if(!allImagesNodeFacesFacesItem["GroupId"].isNull()) - facesObject.groupId = allImagesNodeFacesFacesItem["GroupId"].asString(); - if(!allImagesNodeFacesFacesItem["FaceQuality"].isNull()) - facesObject.faceQuality = std::stof(allImagesNodeFacesFacesItem["FaceQuality"].asString()); - auto emotionDetailsNode = value["EmotionDetails"]; - if(!emotionDetailsNode["SAD"].isNull()) - facesObject.emotionDetails.sAD = std::stof(emotionDetailsNode["SAD"].asString()); - if(!emotionDetailsNode["CALM"].isNull()) - facesObject.emotionDetails.cALM = std::stof(emotionDetailsNode["CALM"].asString()); - if(!emotionDetailsNode["ANGRY"].isNull()) - facesObject.emotionDetails.aNGRY = std::stof(emotionDetailsNode["ANGRY"].asString()); - if(!emotionDetailsNode["HAPPY"].isNull()) - facesObject.emotionDetails.hAPPY = std::stof(emotionDetailsNode["HAPPY"].asString()); - if(!emotionDetailsNode["SCARED"].isNull()) - facesObject.emotionDetails.sCARED = std::stof(emotionDetailsNode["SCARED"].asString()); - if(!emotionDetailsNode["DISGUSTED"].isNull()) - facesObject.emotionDetails.dISGUSTED = std::stof(emotionDetailsNode["DISGUSTED"].asString()); - if(!emotionDetailsNode["SURPRISED"].isNull()) - facesObject.emotionDetails.sURPRISED = std::stof(emotionDetailsNode["SURPRISED"].asString()); - auto faceAttributesNode = value["FaceAttributes"]; - if(!faceAttributesNode["GlassesConfidence"].isNull()) - facesObject.faceAttributes.glassesConfidence = std::stof(faceAttributesNode["GlassesConfidence"].asString()); - if(!faceAttributesNode["Glasses"].isNull()) - facesObject.faceAttributes.glasses = faceAttributesNode["Glasses"].asString(); - if(!faceAttributesNode["RaceConfidence"].isNull()) - facesObject.faceAttributes.raceConfidence = std::stof(faceAttributesNode["RaceConfidence"].asString()); - if(!faceAttributesNode["Beard"].isNull()) - facesObject.faceAttributes.beard = faceAttributesNode["Beard"].asString(); - if(!faceAttributesNode["MaskConfidence"].isNull()) - facesObject.faceAttributes.maskConfidence = std::stof(faceAttributesNode["MaskConfidence"].asString()); - if(!faceAttributesNode["Race"].isNull()) - facesObject.faceAttributes.race = faceAttributesNode["Race"].asString(); - if(!faceAttributesNode["BeardConfidence"].isNull()) - facesObject.faceAttributes.beardConfidence = std::stof(faceAttributesNode["BeardConfidence"].asString()); - if(!faceAttributesNode["Mask"].isNull()) - facesObject.faceAttributes.mask = faceAttributesNode["Mask"].asString(); - auto faceBoundaryNode = faceAttributesNode["FaceBoundary"]; - if(!faceBoundaryNode["Top"].isNull()) - facesObject.faceAttributes.faceBoundary.top = std::stoi(faceBoundaryNode["Top"].asString()); - if(!faceBoundaryNode["Height"].isNull()) - facesObject.faceAttributes.faceBoundary.height = std::stoi(faceBoundaryNode["Height"].asString()); - if(!faceBoundaryNode["Width"].isNull()) - facesObject.faceAttributes.faceBoundary.width = std::stoi(faceBoundaryNode["Width"].asString()); - if(!faceBoundaryNode["Left"].isNull()) - facesObject.faceAttributes.faceBoundary.left = std::stoi(faceBoundaryNode["Left"].asString()); - auto headPoseNode = faceAttributesNode["HeadPose"]; - if(!headPoseNode["Pitch"].isNull()) - facesObject.faceAttributes.headPose.pitch = std::stof(headPoseNode["Pitch"].asString()); - if(!headPoseNode["Roll"].isNull()) - facesObject.faceAttributes.headPose.roll = std::stof(headPoseNode["Roll"].asString()); - if(!headPoseNode["Yaw"].isNull()) - facesObject.faceAttributes.headPose.yaw = std::stof(headPoseNode["Yaw"].asString()); - imagesObject.faces.push_back(facesObject); - } - auto allTagsNode = allImagesNode["Tags"]["TagsItem"]; - for (auto allImagesNodeTagsTagsItem : allTagsNode) - { - Frames::TagsItem tagsObject; - if(!allImagesNodeTagsTagsItem["TagConfidence"].isNull()) - tagsObject.tagConfidence = std::stof(allImagesNodeTagsTagsItem["TagConfidence"].asString()); - if(!allImagesNodeTagsTagsItem["TagLevel"].isNull()) - tagsObject.tagLevel = std::stoi(allImagesNodeTagsTagsItem["TagLevel"].asString()); - if(!allImagesNodeTagsTagsItem["TagName"].isNull()) - tagsObject.tagName = allImagesNodeTagsTagsItem["TagName"].asString(); - if(!allImagesNodeTagsTagsItem["ParentTagName"].isNull()) - tagsObject.parentTagName = allImagesNodeTagsTagsItem["ParentTagName"].asString(); - imagesObject.tags.push_back(tagsObject); - } - auto allOCRNode = allImagesNode["OCR"]["OCRItem"]; - for (auto allImagesNodeOCROCRItem : allOCRNode) - { - Frames::OCRItem oCRObject; - if(!allImagesNodeOCROCRItem["OCRContents"].isNull()) - oCRObject.oCRContents = allImagesNodeOCROCRItem["OCRContents"].asString(); - if(!allImagesNodeOCROCRItem["OCRConfidence"].isNull()) - oCRObject.oCRConfidence = std::stof(allImagesNodeOCROCRItem["OCRConfidence"].asString()); - auto oCRBoundaryNode = value["OCRBoundary"]; - if(!oCRBoundaryNode["Left"].isNull()) - oCRObject.oCRBoundary.left = std::stoi(oCRBoundaryNode["Left"].asString()); - if(!oCRBoundaryNode["Left"].isNull()) - oCRObject.oCRBoundary.left1 = std::stoi(oCRBoundaryNode["Left"].asString()); - if(!oCRBoundaryNode["Width"].isNull()) - oCRObject.oCRBoundary.width = std::stoi(oCRBoundaryNode["Width"].asString()); - if(!oCRBoundaryNode["Height"].isNull()) - oCRObject.oCRBoundary.height = std::stoi(oCRBoundaryNode["Height"].asString()); - imagesObject.oCR.push_back(oCRObject); - } - auto allCelebrityNode = allImagesNode["Celebrity"]["CelebrityItem"]; - for (auto allImagesNodeCelebrityCelebrityItem : allCelebrityNode) - { - Frames::CelebrityItem celebrityObject; - if(!allImagesNodeCelebrityCelebrityItem["CelebrityName"].isNull()) - celebrityObject.celebrityName = allImagesNodeCelebrityCelebrityItem["CelebrityName"].asString(); - if(!allImagesNodeCelebrityCelebrityItem["CelebrityGender"].isNull()) - celebrityObject.celebrityGender = allImagesNodeCelebrityCelebrityItem["CelebrityGender"].asString(); - if(!allImagesNodeCelebrityCelebrityItem["CelebrityConfidence"].isNull()) - celebrityObject.celebrityConfidence = std::stof(allImagesNodeCelebrityCelebrityItem["CelebrityConfidence"].asString()); - if(!allImagesNodeCelebrityCelebrityItem["CelebrityLibraryName"].isNull()) - celebrityObject.celebrityLibraryName = allImagesNodeCelebrityCelebrityItem["CelebrityLibraryName"].asString(); - auto celebrityBoundaryNode = value["CelebrityBoundary"]; - if(!celebrityBoundaryNode["Left"].isNull()) - celebrityObject.celebrityBoundary.left = std::stoi(celebrityBoundaryNode["Left"].asString()); - if(!celebrityBoundaryNode["Top"].isNull()) - celebrityObject.celebrityBoundary.top = std::stoi(celebrityBoundaryNode["Top"].asString()); - if(!celebrityBoundaryNode["Width"].isNull()) - celebrityObject.celebrityBoundary.width = std::stoi(celebrityBoundaryNode["Width"].asString()); - if(!celebrityBoundaryNode["Height"].isNull()) - celebrityObject.celebrityBoundary.height = std::stoi(celebrityBoundaryNode["Height"].asString()); - imagesObject.celebrity.push_back(celebrityObject); - } - auto addressNode = value["Address"]; - if(!addressNode["AddressLine"].isNull()) - imagesObject.address.addressLine = addressNode["AddressLine"].asString(); - if(!addressNode["Country"].isNull()) - imagesObject.address.country = addressNode["Country"].asString(); - if(!addressNode["Province"].isNull()) - imagesObject.address.province = addressNode["Province"].asString(); - if(!addressNode["City"].isNull()) - imagesObject.address.city = addressNode["City"].asString(); - if(!addressNode["District"].isNull()) - imagesObject.address.district = addressNode["District"].asString(); - if(!addressNode["Township"].isNull()) - imagesObject.address.township = addressNode["Township"].asString(); - images_.push_back(imagesObject); - } - if(!value["SetId"].isNull()) - setId_ = value["SetId"].asString(); - if(!value["NextMarker"].isNull()) - nextMarker_ = value["NextMarker"].asString(); - -} - -std::vector FindImagesByTagNamesResult::getImages()const -{ - return images_; -} - -std::string FindImagesByTagNamesResult::getSetId()const -{ - return setId_; -} - -std::string FindImagesByTagNamesResult::getNextMarker()const -{ - return nextMarker_; -} - diff --git a/imm/src/model/FindImagesResult.cc b/imm/src/model/FindImagesResult.cc index 459e84f16..e0b14e5d6 100644 --- a/imm/src/model/FindImagesResult.cc +++ b/imm/src/model/FindImagesResult.cc @@ -115,6 +115,37 @@ void FindImagesResult::parse(const std::string &payload) imagesObject.remarksArrayB = valueImagesImagesItem["RemarksArrayB"].asString(); if(!valueImagesImagesItem["RemarksArrayA"].isNull()) imagesObject.remarksArrayA = valueImagesImagesItem["RemarksArrayA"].asString(); + if(!valueImagesImagesItem["ImageQualityStatus"].isNull()) + imagesObject.imageQualityStatus = valueImagesImagesItem["ImageQualityStatus"].asString(); + if(!valueImagesImagesItem["ImageQualityFailReason"].isNull()) + imagesObject.imageQualityFailReason = valueImagesImagesItem["ImageQualityFailReason"].asString(); + if(!valueImagesImagesItem["ImageQualityModifyTime"].isNull()) + imagesObject.imageQualityModifyTime = valueImagesImagesItem["ImageQualityModifyTime"].asString(); + if(!valueImagesImagesItem["CroppingSuggestionStatus"].isNull()) + imagesObject.croppingSuggestionStatus = valueImagesImagesItem["CroppingSuggestionStatus"].asString(); + if(!valueImagesImagesItem["CroppingSuggestionFailReason"].isNull()) + imagesObject.croppingSuggestionFailReason = valueImagesImagesItem["CroppingSuggestionFailReason"].asString(); + if(!valueImagesImagesItem["CroppingSuggestionModifyTime"].isNull()) + imagesObject.croppingSuggestionModifyTime = valueImagesImagesItem["CroppingSuggestionModifyTime"].asString(); + auto allCroppingSuggestionNode = allImagesNode["CroppingSuggestion"]["CroppingSuggestionItem"]; + for (auto allImagesNodeCroppingSuggestionCroppingSuggestionItem : allCroppingSuggestionNode) + { + ImagesItem::CroppingSuggestionItem croppingSuggestionObject; + if(!allImagesNodeCroppingSuggestionCroppingSuggestionItem["AspectRatio"].isNull()) + croppingSuggestionObject.aspectRatio = allImagesNodeCroppingSuggestionCroppingSuggestionItem["AspectRatio"].asString(); + if(!allImagesNodeCroppingSuggestionCroppingSuggestionItem["Score"].isNull()) + croppingSuggestionObject.score = std::stof(allImagesNodeCroppingSuggestionCroppingSuggestionItem["Score"].asString()); + auto croppingBoundaryNode = value["CroppingBoundary"]; + if(!croppingBoundaryNode["Width"].isNull()) + croppingSuggestionObject.croppingBoundary.width = std::stoi(croppingBoundaryNode["Width"].asString()); + if(!croppingBoundaryNode["Height"].isNull()) + croppingSuggestionObject.croppingBoundary.height = std::stoi(croppingBoundaryNode["Height"].asString()); + if(!croppingBoundaryNode["Left"].isNull()) + croppingSuggestionObject.croppingBoundary.left = std::stoi(croppingBoundaryNode["Left"].asString()); + if(!croppingBoundaryNode["Top"].isNull()) + croppingSuggestionObject.croppingBoundary.top = std::stoi(croppingBoundaryNode["Top"].asString()); + imagesObject.croppingSuggestion.push_back(croppingSuggestionObject); + } auto allFacesNode = allImagesNode["Faces"]["FacesItem"]; for (auto allImagesNodeFacesFacesItem : allFacesNode) { @@ -245,6 +276,27 @@ void FindImagesResult::parse(const std::string &payload) celebrityObject.celebrityBoundary.height = std::stoi(celebrityBoundaryNode["Height"].asString()); imagesObject.celebrity.push_back(celebrityObject); } + auto imageQualityNode = value["ImageQuality"]; + if(!imageQualityNode["OverallScore"].isNull()) + imagesObject.imageQuality.overallScore = std::stof(imageQualityNode["OverallScore"].asString()); + if(!imageQualityNode["ClarityScore"].isNull()) + imagesObject.imageQuality.clarityScore = std::stof(imageQualityNode["ClarityScore"].asString()); + if(!imageQualityNode["Clarity"].isNull()) + imagesObject.imageQuality.clarity = std::stof(imageQualityNode["Clarity"].asString()); + if(!imageQualityNode["ExposureScore"].isNull()) + imagesObject.imageQuality.exposureScore = std::stof(imageQualityNode["ExposureScore"].asString()); + if(!imageQualityNode["Exposure"].isNull()) + imagesObject.imageQuality.exposure = std::stof(imageQualityNode["Exposure"].asString()); + if(!imageQualityNode["ContrastScore"].isNull()) + imagesObject.imageQuality.contrastScore = std::stof(imageQualityNode["ContrastScore"].asString()); + if(!imageQualityNode["Contrast"].isNull()) + imagesObject.imageQuality.contrast = std::stof(imageQualityNode["Contrast"].asString()); + if(!imageQualityNode["ColorScore"].isNull()) + imagesObject.imageQuality.colorScore = std::stof(imageQualityNode["ColorScore"].asString()); + if(!imageQualityNode["Color"].isNull()) + imagesObject.imageQuality.color = std::stof(imageQualityNode["Color"].asString()); + if(!imageQualityNode["CompositionScore"].isNull()) + imagesObject.imageQuality.compositionScore = std::stof(imageQualityNode["CompositionScore"].asString()); auto addressNode = value["Address"]; if(!addressNode["AddressLine"].isNull()) imagesObject.address.addressLine = addressNode["AddressLine"].asString(); diff --git a/imm/src/model/GetImageResult.cc b/imm/src/model/GetImageResult.cc index 049d86ceb..5db38125e 100644 --- a/imm/src/model/GetImageResult.cc +++ b/imm/src/model/GetImageResult.cc @@ -39,6 +39,25 @@ void GetImageResult::parse(const std::string &payload) Json::Value value; reader.parse(payload, value); setRequestId(value["RequestId"].asString()); + auto allCroppingSuggestionNode = value["CroppingSuggestion"]["CroppingSuggestionItem"]; + for (auto valueCroppingSuggestionCroppingSuggestionItem : allCroppingSuggestionNode) + { + CroppingSuggestionItem croppingSuggestionObject; + if(!valueCroppingSuggestionCroppingSuggestionItem["AspectRatio"].isNull()) + croppingSuggestionObject.aspectRatio = valueCroppingSuggestionCroppingSuggestionItem["AspectRatio"].asString(); + if(!valueCroppingSuggestionCroppingSuggestionItem["Score"].isNull()) + croppingSuggestionObject.score = std::stof(valueCroppingSuggestionCroppingSuggestionItem["Score"].asString()); + auto croppingBoundaryNode = value["CroppingBoundary"]; + if(!croppingBoundaryNode["Width"].isNull()) + croppingSuggestionObject.croppingBoundary.width = std::stoi(croppingBoundaryNode["Width"].asString()); + if(!croppingBoundaryNode["Height"].isNull()) + croppingSuggestionObject.croppingBoundary.height = std::stoi(croppingBoundaryNode["Height"].asString()); + if(!croppingBoundaryNode["Left"].isNull()) + croppingSuggestionObject.croppingBoundary.left = std::stoi(croppingBoundaryNode["Left"].asString()); + if(!croppingBoundaryNode["Top"].isNull()) + croppingSuggestionObject.croppingBoundary.top = std::stoi(croppingBoundaryNode["Top"].asString()); + croppingSuggestion_.push_back(croppingSuggestionObject); + } auto allFacesNode = value["Faces"]["FacesItem"]; for (auto valueFacesFacesItem : allFacesNode) { @@ -169,6 +188,27 @@ void GetImageResult::parse(const std::string &payload) celebrityObject.celebrityBoundary.height = std::stoi(celebrityBoundaryNode["Height"].asString()); celebrity_.push_back(celebrityObject); } + auto imageQualityNode = value["ImageQuality"]; + if(!imageQualityNode["OverallScore"].isNull()) + imageQuality_.overallScore = std::stof(imageQualityNode["OverallScore"].asString()); + if(!imageQualityNode["ClarityScore"].isNull()) + imageQuality_.clarityScore = std::stof(imageQualityNode["ClarityScore"].asString()); + if(!imageQualityNode["Clarity"].isNull()) + imageQuality_.clarity = std::stof(imageQualityNode["Clarity"].asString()); + if(!imageQualityNode["ExposureScore"].isNull()) + imageQuality_.exposureScore = std::stof(imageQualityNode["ExposureScore"].asString()); + if(!imageQualityNode["Exposure"].isNull()) + imageQuality_.exposure = std::stof(imageQualityNode["Exposure"].asString()); + if(!imageQualityNode["ContrastScore"].isNull()) + imageQuality_.contrastScore = std::stof(imageQualityNode["ContrastScore"].asString()); + if(!imageQualityNode["Contrast"].isNull()) + imageQuality_.contrast = std::stof(imageQualityNode["Contrast"].asString()); + if(!imageQualityNode["ColorScore"].isNull()) + imageQuality_.colorScore = std::stof(imageQualityNode["ColorScore"].asString()); + if(!imageQualityNode["Color"].isNull()) + imageQuality_.color = std::stof(imageQualityNode["Color"].asString()); + if(!imageQualityNode["CompositionScore"].isNull()) + imageQuality_.compositionScore = std::stof(imageQualityNode["CompositionScore"].asString()); auto addressNode = value["Address"]; if(!addressNode["AddressLine"].isNull()) address_.addressLine = addressNode["AddressLine"].asString(); @@ -256,12 +296,24 @@ void GetImageResult::parse(const std::string &payload) remarksArrayA_ = value["RemarksArrayA"].asString(); if(!value["RemarksArrayB"].isNull()) remarksArrayB_ = value["RemarksArrayB"].asString(); + if(!value["ImageQualityModifyTime"].isNull()) + imageQualityModifyTime_ = value["ImageQualityModifyTime"].asString(); + if(!value["ImageQualityFailReason"].isNull()) + imageQualityFailReason_ = value["ImageQualityFailReason"].asString(); + if(!value["ImageQualityStatus"].isNull()) + imageQualityStatus_ = value["ImageQualityStatus"].asString(); + if(!value["CroppingSuggestionStatus"].isNull()) + croppingSuggestionStatus_ = value["CroppingSuggestionStatus"].asString(); + if(!value["CroppingSuggestionFailReason"].isNull()) + croppingSuggestionFailReason_ = value["CroppingSuggestionFailReason"].asString(); + if(!value["CroppingSuggestionModifyTime"].isNull()) + croppingSuggestionModifyTime_ = value["CroppingSuggestionModifyTime"].asString(); } -std::string GetImageResult::getModifyTime()const +GetImageResult::ImageQuality GetImageResult::getImageQuality()const { - return modifyTime_; + return imageQuality_; } GetImageResult::Address GetImageResult::getAddress()const @@ -284,9 +336,9 @@ std::string GetImageResult::getFacesFailReason()const return facesFailReason_; } -std::string GetImageResult::getRemarksA()const +std::string GetImageResult::getCroppingSuggestionFailReason()const { - return remarksA_; + return croppingSuggestionFailReason_; } std::string GetImageResult::getAddressFailReason()const @@ -294,26 +346,11 @@ std::string GetImageResult::getAddressFailReason()const return addressFailReason_; } -std::string GetImageResult::getRemarksB()const -{ - return remarksB_; -} - -std::string GetImageResult::getAddressModifyTime()const -{ - return addressModifyTime_; -} - std::string GetImageResult::getImageFormat()const { return imageFormat_; } -std::string GetImageResult::getTagsFailReason()const -{ - return tagsFailReason_; -} - std::string GetImageResult::getRemarksArrayB()const { return remarksArrayB_; @@ -324,21 +361,6 @@ std::string GetImageResult::getExif()const return exif_; } -std::string GetImageResult::getFacesModifyTime()const -{ - return facesModifyTime_; -} - -std::string GetImageResult::getRemarksC()const -{ - return remarksC_; -} - -std::string GetImageResult::getRemarksD()const -{ - return remarksD_; -} - int GetImageResult::getImageWidth()const { return imageWidth_; @@ -374,6 +396,126 @@ std::string GetImageResult::getAddressStatus()const return addressStatus_; } +std::string GetImageResult::getImageQualityModifyTime()const +{ + return imageQualityModifyTime_; +} + +std::vector GetImageResult::getCroppingSuggestion()const +{ + return croppingSuggestion_; +} + +std::string GetImageResult::getImageQualityFailReason()const +{ + return imageQualityFailReason_; +} + +std::string GetImageResult::getImageUri()const +{ + return imageUri_; +} + +std::string GetImageResult::getOrientation()const +{ + return orientation_; +} + +std::string GetImageResult::getImageTime()const +{ + return imageTime_; +} + +std::string GetImageResult::getCroppingSuggestionModifyTime()const +{ + return croppingSuggestionModifyTime_; +} + +std::string GetImageResult::getCelebrityModifyTime()const +{ + return celebrityModifyTime_; +} + +int GetImageResult::getImageHeight()const +{ + return imageHeight_; +} + +std::string GetImageResult::getTagsStatus()const +{ + return tagsStatus_; +} + +std::string GetImageResult::getImageQualityStatus()const +{ + return imageQualityStatus_; +} + +std::string GetImageResult::getCelebrityFailReason()const +{ + return celebrityFailReason_; +} + +std::string GetImageResult::getSetId()const +{ + return setId_; +} + +std::string GetImageResult::getCelebrityStatus()const +{ + return celebrityStatus_; +} + +int GetImageResult::getFileSize()const +{ + return fileSize_; +} + +std::string GetImageResult::getModifyTime()const +{ + return modifyTime_; +} + +std::string GetImageResult::getCroppingSuggestionStatus()const +{ + return croppingSuggestionStatus_; +} + +std::string GetImageResult::getRemarksA()const +{ + return remarksA_; +} + +std::string GetImageResult::getRemarksB()const +{ + return remarksB_; +} + +std::string GetImageResult::getAddressModifyTime()const +{ + return addressModifyTime_; +} + +std::string GetImageResult::getTagsFailReason()const +{ + return tagsFailReason_; +} + +std::string GetImageResult::getFacesModifyTime()const +{ + return facesModifyTime_; +} + +std::string GetImageResult::getRemarksC()const +{ + return remarksC_; +} + +std::string GetImageResult::getRemarksD()const +{ + return remarksD_; +} + std::string GetImageResult::getFacesStatus()const { return facesStatus_; @@ -394,16 +536,6 @@ std::string GetImageResult::getExternalId()const return externalId_; } -std::string GetImageResult::getImageUri()const -{ - return imageUri_; -} - -std::string GetImageResult::getOrientation()const -{ - return orientation_; -} - std::string GetImageResult::getOCRStatus()const { return oCRStatus_; @@ -414,56 +546,16 @@ std::string GetImageResult::getOCRModifyTime()const return oCRModifyTime_; } -std::string GetImageResult::getImageTime()const -{ - return imageTime_; -} - -std::string GetImageResult::getCelebrityModifyTime()const -{ - return celebrityModifyTime_; -} - -int GetImageResult::getImageHeight()const -{ - return imageHeight_; -} - -std::string GetImageResult::getTagsStatus()const -{ - return tagsStatus_; -} - std::string GetImageResult::getOCRFailReason()const { return oCRFailReason_; } -std::string GetImageResult::getCelebrityFailReason()const -{ - return celebrityFailReason_; -} - -std::string GetImageResult::getSetId()const -{ - return setId_; -} - -std::string GetImageResult::getCelebrityStatus()const -{ - return celebrityStatus_; -} - std::vector GetImageResult::getOCR()const { return oCR_; } -int GetImageResult::getFileSize()const -{ - return fileSize_; -} - std::string GetImageResult::getLocation()const { return location_; diff --git a/imm/src/model/GetMediaMetaResult.cc b/imm/src/model/GetMediaMetaResult.cc index 9fafa5656..51545697d 100644 --- a/imm/src/model/GetMediaMetaResult.cc +++ b/imm/src/model/GetMediaMetaResult.cc @@ -123,6 +123,8 @@ void GetMediaMetaResult::parse(const std::string &payload) videoStreamObject.bitrate = mediaStreamsNodeVideoStreamsVideoStream["Bitrate"].asString(); if(!mediaStreamsNodeVideoStreamsVideoStream["Frames"].isNull()) videoStreamObject.frames = mediaStreamsNodeVideoStreamsVideoStream["Frames"].asString(); + if(!mediaStreamsNodeVideoStreamsVideoStream["Rotate"].isNull()) + videoStreamObject.rotate = mediaStreamsNodeVideoStreamsVideoStream["Rotate"].asString(); mediaMeta_.mediaStreams.videoStreams.push_back(videoStreamObject); } auto allAudioStreamsNode = mediaStreamsNode["AudioStreams"]["AudioStream"]; diff --git a/imm/src/model/ListImagesResult.cc b/imm/src/model/ListImagesResult.cc index 8134776fd..37c9fe11a 100644 --- a/imm/src/model/ListImagesResult.cc +++ b/imm/src/model/ListImagesResult.cc @@ -115,6 +115,37 @@ void ListImagesResult::parse(const std::string &payload) imagesObject.remarksArrayA = valueImagesImagesItem["RemarksArrayA"].asString(); if(!valueImagesImagesItem["RemarksArrayB"].isNull()) imagesObject.remarksArrayB = valueImagesImagesItem["RemarksArrayB"].asString(); + if(!valueImagesImagesItem["ImageQualityStatus"].isNull()) + imagesObject.imageQualityStatus = valueImagesImagesItem["ImageQualityStatus"].asString(); + if(!valueImagesImagesItem["ImageQualityFailReason"].isNull()) + imagesObject.imageQualityFailReason = valueImagesImagesItem["ImageQualityFailReason"].asString(); + if(!valueImagesImagesItem["ImageQualityModifyTime"].isNull()) + imagesObject.imageQualityModifyTime = valueImagesImagesItem["ImageQualityModifyTime"].asString(); + if(!valueImagesImagesItem["CroppingSuggestionStatus"].isNull()) + imagesObject.croppingSuggestionStatus = valueImagesImagesItem["CroppingSuggestionStatus"].asString(); + if(!valueImagesImagesItem["CroppingSuggestionFailReason"].isNull()) + imagesObject.croppingSuggestionFailReason = valueImagesImagesItem["CroppingSuggestionFailReason"].asString(); + if(!valueImagesImagesItem["CroppingSuggestionModifyTime"].isNull()) + imagesObject.croppingSuggestionModifyTime = valueImagesImagesItem["CroppingSuggestionModifyTime"].asString(); + auto allCroppingSuggestionNode = allImagesNode["CroppingSuggestion"]["CroppingSuggestionItem"]; + for (auto allImagesNodeCroppingSuggestionCroppingSuggestionItem : allCroppingSuggestionNode) + { + ImagesItem::CroppingSuggestionItem croppingSuggestionObject; + if(!allImagesNodeCroppingSuggestionCroppingSuggestionItem["AspectRatio"].isNull()) + croppingSuggestionObject.aspectRatio = allImagesNodeCroppingSuggestionCroppingSuggestionItem["AspectRatio"].asString(); + if(!allImagesNodeCroppingSuggestionCroppingSuggestionItem["Score"].isNull()) + croppingSuggestionObject.score = std::stof(allImagesNodeCroppingSuggestionCroppingSuggestionItem["Score"].asString()); + auto croppingBoundaryNode = value["CroppingBoundary"]; + if(!croppingBoundaryNode["Width"].isNull()) + croppingSuggestionObject.croppingBoundary.width = std::stoi(croppingBoundaryNode["Width"].asString()); + if(!croppingBoundaryNode["Height"].isNull()) + croppingSuggestionObject.croppingBoundary.height = std::stoi(croppingBoundaryNode["Height"].asString()); + if(!croppingBoundaryNode["Left"].isNull()) + croppingSuggestionObject.croppingBoundary.left = std::stoi(croppingBoundaryNode["Left"].asString()); + if(!croppingBoundaryNode["Top"].isNull()) + croppingSuggestionObject.croppingBoundary.top = std::stoi(croppingBoundaryNode["Top"].asString()); + imagesObject.croppingSuggestion.push_back(croppingSuggestionObject); + } auto allFacesNode = allImagesNode["Faces"]["FacesItem"]; for (auto allImagesNodeFacesFacesItem : allFacesNode) { @@ -245,6 +276,27 @@ void ListImagesResult::parse(const std::string &payload) celebrityObject.celebrityBoundary.height = std::stoi(celebrityBoundaryNode["Height"].asString()); imagesObject.celebrity.push_back(celebrityObject); } + auto imageQualityNode = value["ImageQuality"]; + if(!imageQualityNode["OverallScore"].isNull()) + imagesObject.imageQuality.overallScore = std::stof(imageQualityNode["OverallScore"].asString()); + if(!imageQualityNode["ClarityScore"].isNull()) + imagesObject.imageQuality.clarityScore = std::stof(imageQualityNode["ClarityScore"].asString()); + if(!imageQualityNode["Clarity"].isNull()) + imagesObject.imageQuality.clarity = std::stof(imageQualityNode["Clarity"].asString()); + if(!imageQualityNode["ExposureScore"].isNull()) + imagesObject.imageQuality.exposureScore = std::stof(imageQualityNode["ExposureScore"].asString()); + if(!imageQualityNode["Exposure"].isNull()) + imagesObject.imageQuality.exposure = std::stof(imageQualityNode["Exposure"].asString()); + if(!imageQualityNode["ContrastScore"].isNull()) + imagesObject.imageQuality.contrastScore = std::stof(imageQualityNode["ContrastScore"].asString()); + if(!imageQualityNode["Contrast"].isNull()) + imagesObject.imageQuality.contrast = std::stof(imageQualityNode["Contrast"].asString()); + if(!imageQualityNode["ColorScore"].isNull()) + imagesObject.imageQuality.colorScore = std::stof(imageQualityNode["ColorScore"].asString()); + if(!imageQualityNode["Color"].isNull()) + imagesObject.imageQuality.color = std::stof(imageQualityNode["Color"].asString()); + if(!imageQualityNode["CompositionScore"].isNull()) + imagesObject.imageQuality.compositionScore = std::stof(imageQualityNode["CompositionScore"].asString()); auto addressNode = value["Address"]; if(!addressNode["AddressLine"].isNull()) imagesObject.address.addressLine = addressNode["AddressLine"].asString();