From ecf1fc42a2fefaa82ca7b9b3ba526472883d5690 Mon Sep 17 00:00:00 2001 From: sdk-team Date: Fri, 17 Feb 2023 08:55:01 +0000 Subject: [PATCH] Release GenerateSuperResolutionImage. --- VERSION | 2 +- imageenhan/CMakeLists.txt | 4 + .../imageenhan/ImageenhanClient.h | 8 ++ .../GenerateSuperResolutionImageRequest.h | 57 +++++++++++++ .../GenerateSuperResolutionImageResult.h | 59 ++++++++++++++ imageenhan/src/ImageenhanClient.cc | 36 +++++++++ .../GenerateSuperResolutionImageRequest.cc | 81 +++++++++++++++++++ .../GenerateSuperResolutionImageResult.cc | 66 +++++++++++++++ 8 files changed, 312 insertions(+), 1 deletion(-) create mode 100644 imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageRequest.h create mode 100644 imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageResult.h create mode 100644 imageenhan/src/model/GenerateSuperResolutionImageRequest.cc create mode 100644 imageenhan/src/model/GenerateSuperResolutionImageResult.cc diff --git a/VERSION b/VERSION index 8458cd0d9..5890ffb0f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.1454 \ No newline at end of file +1.36.1455 \ No newline at end of file diff --git a/imageenhan/CMakeLists.txt b/imageenhan/CMakeLists.txt index fff7a847a..54405bb10 100644 --- a/imageenhan/CMakeLists.txt +++ b/imageenhan/CMakeLists.txt @@ -45,6 +45,8 @@ set(imageenhan_public_header_model include/alibabacloud/imageenhan/model/GenerateImageWithTextResult.h include/alibabacloud/imageenhan/model/GenerateImageWithTextAndImageRequest.h include/alibabacloud/imageenhan/model/GenerateImageWithTextAndImageResult.h + include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageRequest.h + include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageResult.h include/alibabacloud/imageenhan/model/GetAsyncJobResultRequest.h include/alibabacloud/imageenhan/model/GetAsyncJobResultResult.h include/alibabacloud/imageenhan/model/ImageBlindCharacterWatermarkRequest.h @@ -92,6 +94,8 @@ set(imageenhan_src src/model/GenerateImageWithTextResult.cc src/model/GenerateImageWithTextAndImageRequest.cc src/model/GenerateImageWithTextAndImageResult.cc + src/model/GenerateSuperResolutionImageRequest.cc + src/model/GenerateSuperResolutionImageResult.cc src/model/GetAsyncJobResultRequest.cc src/model/GetAsyncJobResultResult.cc src/model/ImageBlindCharacterWatermarkRequest.cc diff --git a/imageenhan/include/alibabacloud/imageenhan/ImageenhanClient.h b/imageenhan/include/alibabacloud/imageenhan/ImageenhanClient.h index 2cbc4c1f9..f7c6827fa 100644 --- a/imageenhan/include/alibabacloud/imageenhan/ImageenhanClient.h +++ b/imageenhan/include/alibabacloud/imageenhan/ImageenhanClient.h @@ -46,6 +46,8 @@ #include "model/GenerateImageWithTextResult.h" #include "model/GenerateImageWithTextAndImageRequest.h" #include "model/GenerateImageWithTextAndImageResult.h" +#include "model/GenerateSuperResolutionImageRequest.h" +#include "model/GenerateSuperResolutionImageResult.h" #include "model/GetAsyncJobResultRequest.h" #include "model/GetAsyncJobResultResult.h" #include "model/ImageBlindCharacterWatermarkRequest.h" @@ -111,6 +113,9 @@ namespace AlibabaCloud typedef Outcome GenerateImageWithTextAndImageOutcome; typedef std::future GenerateImageWithTextAndImageOutcomeCallable; typedef std::function&)> GenerateImageWithTextAndImageAsyncHandler; + typedef Outcome GenerateSuperResolutionImageOutcome; + typedef std::future GenerateSuperResolutionImageOutcomeCallable; + typedef std::function&)> GenerateSuperResolutionImageAsyncHandler; typedef Outcome GetAsyncJobResultOutcome; typedef std::future GetAsyncJobResultOutcomeCallable; typedef std::function&)> GetAsyncJobResultAsyncHandler; @@ -182,6 +187,9 @@ namespace AlibabaCloud GenerateImageWithTextAndImageOutcome generateImageWithTextAndImage(const Model::GenerateImageWithTextAndImageRequest &request)const; void generateImageWithTextAndImageAsync(const Model::GenerateImageWithTextAndImageRequest& request, const GenerateImageWithTextAndImageAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; GenerateImageWithTextAndImageOutcomeCallable generateImageWithTextAndImageCallable(const Model::GenerateImageWithTextAndImageRequest& request) const; + GenerateSuperResolutionImageOutcome generateSuperResolutionImage(const Model::GenerateSuperResolutionImageRequest &request)const; + void generateSuperResolutionImageAsync(const Model::GenerateSuperResolutionImageRequest& request, const GenerateSuperResolutionImageAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; + GenerateSuperResolutionImageOutcomeCallable generateSuperResolutionImageCallable(const Model::GenerateSuperResolutionImageRequest& request) const; GetAsyncJobResultOutcome getAsyncJobResult(const Model::GetAsyncJobResultRequest &request)const; void getAsyncJobResultAsync(const Model::GetAsyncJobResultRequest& request, const GetAsyncJobResultAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; GetAsyncJobResultOutcomeCallable getAsyncJobResultCallable(const Model::GetAsyncJobResultRequest& request) const; diff --git a/imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageRequest.h b/imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageRequest.h new file mode 100644 index 000000000..e08072423 --- /dev/null +++ b/imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageRequest.h @@ -0,0 +1,57 @@ +/* + * 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_IMAGEENHAN_MODEL_GENERATESUPERRESOLUTIONIMAGEREQUEST_H_ +#define ALIBABACLOUD_IMAGEENHAN_MODEL_GENERATESUPERRESOLUTIONIMAGEREQUEST_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud { +namespace Imageenhan { +namespace Model { +class ALIBABACLOUD_IMAGEENHAN_EXPORT GenerateSuperResolutionImageRequest : public RpcServiceRequest { +public: + GenerateSuperResolutionImageRequest(); + ~GenerateSuperResolutionImageRequest(); + int getScale() const; + void setScale(int scale); + std::string getUserData() const; + void setUserData(const std::string &userData); + std::string getOutputFormat() const; + void setOutputFormat(const std::string &outputFormat); + bool getAsync() const; + void setAsync(bool async); + std::string getImageUrl() const; + void setImageUrl(const std::string &imageUrl); + int getOutputQuality() const; + void setOutputQuality(int outputQuality); + +private: + int scale_; + std::string userData_; + std::string outputFormat_; + bool async_; + std::string imageUrl_; + int outputQuality_; +}; +} // namespace Model +} // namespace Imageenhan +} // namespace AlibabaCloud +#endif // !ALIBABACLOUD_IMAGEENHAN_MODEL_GENERATESUPERRESOLUTIONIMAGEREQUEST_H_ diff --git a/imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageResult.h b/imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageResult.h new file mode 100644 index 000000000..3b6d224e1 --- /dev/null +++ b/imageenhan/include/alibabacloud/imageenhan/model/GenerateSuperResolutionImageResult.h @@ -0,0 +1,59 @@ +/* + * 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_IMAGEENHAN_MODEL_GENERATESUPERRESOLUTIONIMAGERESULT_H_ +#define ALIBABACLOUD_IMAGEENHAN_MODEL_GENERATESUPERRESOLUTIONIMAGERESULT_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace Imageenhan + { + namespace Model + { + class ALIBABACLOUD_IMAGEENHAN_EXPORT GenerateSuperResolutionImageResult : public ServiceResult + { + public: + struct Data + { + std::string resultUrl; + }; + + + GenerateSuperResolutionImageResult(); + explicit GenerateSuperResolutionImageResult(const std::string &payload); + ~GenerateSuperResolutionImageResult(); + std::string getMessage()const; + Data getData()const; + std::string getCode()const; + + protected: + void parse(const std::string &payload); + private: + std::string message_; + Data data_; + std::string code_; + + }; + } + } +} +#endif // !ALIBABACLOUD_IMAGEENHAN_MODEL_GENERATESUPERRESOLUTIONIMAGERESULT_H_ \ No newline at end of file diff --git a/imageenhan/src/ImageenhanClient.cc b/imageenhan/src/ImageenhanClient.cc index 865026f9c..d1d2bffce 100644 --- a/imageenhan/src/ImageenhanClient.cc +++ b/imageenhan/src/ImageenhanClient.cc @@ -483,6 +483,42 @@ ImageenhanClient::GenerateImageWithTextAndImageOutcomeCallable ImageenhanClient: return task->get_future(); } +ImageenhanClient::GenerateSuperResolutionImageOutcome ImageenhanClient::generateSuperResolutionImage(const GenerateSuperResolutionImageRequest &request) const +{ + auto endpointOutcome = endpointProvider_->getEndpoint(); + if (!endpointOutcome.isSuccess()) + return GenerateSuperResolutionImageOutcome(endpointOutcome.error()); + + auto outcome = makeRequest(endpointOutcome.result(), request); + + if (outcome.isSuccess()) + return GenerateSuperResolutionImageOutcome(GenerateSuperResolutionImageResult(outcome.result())); + else + return GenerateSuperResolutionImageOutcome(outcome.error()); +} + +void ImageenhanClient::generateSuperResolutionImageAsync(const GenerateSuperResolutionImageRequest& request, const GenerateSuperResolutionImageAsyncHandler& handler, const std::shared_ptr& context) const +{ + auto fn = [this, request, handler, context]() + { + handler(this, request, generateSuperResolutionImage(request), context); + }; + + asyncExecute(new Runnable(fn)); +} + +ImageenhanClient::GenerateSuperResolutionImageOutcomeCallable ImageenhanClient::generateSuperResolutionImageCallable(const GenerateSuperResolutionImageRequest &request) const +{ + auto task = std::make_shared>( + [this, request]() + { + return this->generateSuperResolutionImage(request); + }); + + asyncExecute(new Runnable([task]() { (*task)(); })); + return task->get_future(); +} + ImageenhanClient::GetAsyncJobResultOutcome ImageenhanClient::getAsyncJobResult(const GetAsyncJobResultRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/imageenhan/src/model/GenerateSuperResolutionImageRequest.cc b/imageenhan/src/model/GenerateSuperResolutionImageRequest.cc new file mode 100644 index 000000000..8c85c3966 --- /dev/null +++ b/imageenhan/src/model/GenerateSuperResolutionImageRequest.cc @@ -0,0 +1,81 @@ +/* + * 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::Imageenhan::Model::GenerateSuperResolutionImageRequest; + +GenerateSuperResolutionImageRequest::GenerateSuperResolutionImageRequest() + : RpcServiceRequest("imageenhan", "2019-09-30", "GenerateSuperResolutionImage") { + setMethod(HttpRequest::Method::Post); +} + +GenerateSuperResolutionImageRequest::~GenerateSuperResolutionImageRequest() {} + +int GenerateSuperResolutionImageRequest::getScale() const { + return scale_; +} + +void GenerateSuperResolutionImageRequest::setScale(int scale) { + scale_ = scale; + setBodyParameter(std::string("Scale"), std::to_string(scale)); +} + +std::string GenerateSuperResolutionImageRequest::getUserData() const { + return userData_; +} + +void GenerateSuperResolutionImageRequest::setUserData(const std::string &userData) { + userData_ = userData; + setBodyParameter(std::string("UserData"), userData); +} + +std::string GenerateSuperResolutionImageRequest::getOutputFormat() const { + return outputFormat_; +} + +void GenerateSuperResolutionImageRequest::setOutputFormat(const std::string &outputFormat) { + outputFormat_ = outputFormat; + setBodyParameter(std::string("OutputFormat"), outputFormat); +} + +bool GenerateSuperResolutionImageRequest::getAsync() const { + return async_; +} + +void GenerateSuperResolutionImageRequest::setAsync(bool async) { + async_ = async; + setBodyParameter(std::string("Async"), async ? "true" : "false"); +} + +std::string GenerateSuperResolutionImageRequest::getImageUrl() const { + return imageUrl_; +} + +void GenerateSuperResolutionImageRequest::setImageUrl(const std::string &imageUrl) { + imageUrl_ = imageUrl; + setBodyParameter(std::string("ImageUrl"), imageUrl); +} + +int GenerateSuperResolutionImageRequest::getOutputQuality() const { + return outputQuality_; +} + +void GenerateSuperResolutionImageRequest::setOutputQuality(int outputQuality) { + outputQuality_ = outputQuality; + setBodyParameter(std::string("OutputQuality"), std::to_string(outputQuality)); +} + diff --git a/imageenhan/src/model/GenerateSuperResolutionImageResult.cc b/imageenhan/src/model/GenerateSuperResolutionImageResult.cc new file mode 100644 index 000000000..d47670c17 --- /dev/null +++ b/imageenhan/src/model/GenerateSuperResolutionImageResult.cc @@ -0,0 +1,66 @@ +/* + * 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::Imageenhan; +using namespace AlibabaCloud::Imageenhan::Model; + +GenerateSuperResolutionImageResult::GenerateSuperResolutionImageResult() : + ServiceResult() +{} + +GenerateSuperResolutionImageResult::GenerateSuperResolutionImageResult(const std::string &payload) : + ServiceResult() +{ + parse(payload); +} + +GenerateSuperResolutionImageResult::~GenerateSuperResolutionImageResult() +{} + +void GenerateSuperResolutionImageResult::parse(const std::string &payload) +{ + Json::Reader reader; + Json::Value value; + reader.parse(payload, value); + setRequestId(value["RequestId"].asString()); + auto dataNode = value["Data"]; + if(!dataNode["ResultUrl"].isNull()) + data_.resultUrl = dataNode["ResultUrl"].asString(); + if(!value["Code"].isNull()) + code_ = value["Code"].asString(); + if(!value["Message"].isNull()) + message_ = value["Message"].asString(); + +} + +std::string GenerateSuperResolutionImageResult::getMessage()const +{ + return message_; +} + +GenerateSuperResolutionImageResult::Data GenerateSuperResolutionImageResult::getData()const +{ + return data_; +} + +std::string GenerateSuperResolutionImageResult::getCode()const +{ + return code_; +} +