提交修改
This commit is contained in:
parent
a12b1e5486
commit
e98ed81598
@ -86,6 +86,13 @@
|
||||
<version>1.0.2</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>viapi20230117</artifactId>
|
||||
<version>2.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.aliyun</groupId>
|
||||
<artifactId>tea-openapi</artifactId>
|
||||
|
||||
@ -0,0 +1,46 @@
|
||||
package com.heyu.api.alibaba.handle.imageenhan;
|
||||
|
||||
|
||||
import com.aliyun.teautil.models.RuntimeOptions;
|
||||
import com.aliyun.viapi20230117.models.GetAsyncJobResultRequest;
|
||||
import com.aliyun.viapi20230117.models.GetAsyncJobResultResponse;
|
||||
import com.heyu.api.alibaba.AlibabaBaseHandle;
|
||||
import com.heyu.api.alibaba.request.imageenhan.AGetAsyncJobResultRequest;
|
||||
import com.heyu.api.data.utils.StringUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* https://next.api.aliyun.com/api/viapi/2023-01-17/GetAsyncJobResult?RegionId=cn-shanghai&tab=DOC¶ms={%22JobId%22:%22309CC798-49B8-500E-9F73-28C55478464F%22}&lang=JAVA
|
||||
*
|
||||
*
|
||||
* 查询异步任务结果 GetAsyncJobResult
|
||||
*
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class AGetAsyncJobResultHandle extends AlibabaBaseHandle<AGetAsyncJobResultRequest, GetAsyncJobResultResponse> {
|
||||
|
||||
|
||||
@Autowired
|
||||
private com.aliyun.viapi20230117.Client client;
|
||||
|
||||
@Override
|
||||
public String check(AGetAsyncJobResultRequest p) {
|
||||
if(StringUtils.isEmpty(p.getJobId())){
|
||||
|
||||
return "任务id不能为空";
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public GetAsyncJobResultResponse run(AGetAsyncJobResultRequest ap, RuntimeOptions runtime) throws Exception {
|
||||
GetAsyncJobResultRequest request = new GetAsyncJobResultRequest();
|
||||
request.setJobId(ap.getJobId());
|
||||
// 复制代码运行请自行打印 API 的返回值
|
||||
return client.getAsyncJobResultWithOptions(request, runtime);
|
||||
|
||||
}
|
||||
}
|
||||
@ -26,7 +26,7 @@ public class AGenerateSuperResolutionImageRequest extends ACommonTextRequest {
|
||||
* 示例值:
|
||||
* jpg
|
||||
*/
|
||||
private String outputFormat;
|
||||
private String outputFormat = "jpg";
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
package com.heyu.api.alibaba.request.imageenhan;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class AGetAsyncJobResultRequest implements Serializable {
|
||||
|
||||
/***
|
||||
*输入异步接口返回的 RequestId,输入后可以查询异步接口的真实请求结果。
|
||||
*
|
||||
* 示例值:
|
||||
* B6590005-5E7C-4A25-8F97-4479888D8271
|
||||
*/
|
||||
private String jobId;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -105,6 +105,32 @@ public class AlibabaClientConfig {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* <b>description</b> :
|
||||
* <p>使用AK&SK初始化账号Client</p>
|
||||
* @return Client
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
@Bean
|
||||
public com.aliyun.viapi20230117.Client createViapi20230117Client(@Value("${aliyun.alibaba_cloud_access_key_id}") String alibaba_cloud_access_key_id,
|
||||
@Value("${aliyun.alibaba_cloud_access_key_secret}") String alibaba_cloud_access_key_secret) throws Exception {
|
||||
// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
|
||||
// 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html。
|
||||
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
|
||||
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
|
||||
.setAccessKeyId(alibaba_cloud_access_key_id)
|
||||
// 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
|
||||
.setAccessKeySecret(alibaba_cloud_access_key_secret);
|
||||
// Endpoint 请参考 https://api.aliyun.com/product/viapi
|
||||
config.endpoint = "viapi.cn-shanghai.aliyuncs.com";
|
||||
return new com.aliyun.viapi20230117.Client(config);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <b>description</b> :
|
||||
* <p>使用AK&SK初始化账号Client</p>
|
||||
|
||||
@ -0,0 +1,43 @@
|
||||
package com.heyu.api.controller.imageenhan;
|
||||
|
||||
|
||||
import com.heyu.api.alibaba.handle.imageenhan.AGenerateImageWithTextHandle;
|
||||
import com.heyu.api.alibaba.request.imageenhan.AGenerateImageWithTextRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
/***
|
||||
* https://next.api.aliyun.com/api/imageenhan/2019-09-30/GenerateImageWithText?tab=DOC
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/image")
|
||||
@NotIntercept
|
||||
public class GenerateImageWithTextController extends BaseController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private AGenerateImageWithTextHandle generateImageWithTextHandle;
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/xxx")
|
||||
@CacheResult
|
||||
public R extendStyle(AGenerateImageWithTextRequest req) {
|
||||
|
||||
|
||||
|
||||
return R.ok();
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,49 @@
|
||||
package com.heyu.api.controller.imageenhan;
|
||||
|
||||
import com.aliyun.imageenhan20190930.models.GenerateSuperResolutionImageResponse;
|
||||
import com.aliyun.imageenhan20190930.models.GenerateSuperResolutionImageResponseBody;
|
||||
import com.heyu.api.alibaba.handle.imageenhan.AGenerateSuperResolutionImageHandle;
|
||||
import com.heyu.api.alibaba.request.imageenhan.AGenerateSuperResolutionImageRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.request.imageenhan.GenerateSuperResolutionImageReq;
|
||||
import com.heyu.api.resp.imageenhan.GenerateSuperResolutionImageResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/image")
|
||||
@NotIntercept
|
||||
public class GenerateSuperResolutionImageController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private AGenerateSuperResolutionImageHandle generateSuperResolutionImageHandle;
|
||||
|
||||
@RequestMapping("/superScore")
|
||||
@CacheResult
|
||||
public R superScore(GenerateSuperResolutionImageReq req) {
|
||||
|
||||
GenerateSuperResolutionImageResp resp = new GenerateSuperResolutionImageResp();
|
||||
|
||||
AGenerateSuperResolutionImageRequest request = new AGenerateSuperResolutionImageRequest();
|
||||
request.setImageUrl(req.getImageUrl());
|
||||
request.setImageBase64(req.getImageBase64());
|
||||
request.setScale(req.getScale());
|
||||
request.setOutputQuality(req.getOutputQuality());
|
||||
|
||||
ApiR<GenerateSuperResolutionImageResponse> aR = generateSuperResolutionImageHandle.handle(request);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
GenerateSuperResolutionImageResponseBody.GenerateSuperResolutionImageResponseBodyData responseBodyData = aR.getData().getBody().getData();
|
||||
resp.setImageURL(responseBodyData.getResultUrl());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
return R.error(aR.getErrorMsg());
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,90 @@
|
||||
package com.heyu.api.controller.imageenhan;
|
||||
|
||||
|
||||
import com.aliyun.imageenhan20190930.models.ImageBlindCharacterWatermarkResponse;
|
||||
import com.aliyun.imageenhan20190930.models.ImageBlindCharacterWatermarkResponseBody;
|
||||
import com.aliyun.imageenhan20190930.models.ImageBlindPicWatermarkResponse;
|
||||
import com.aliyun.imageenhan20190930.models.ImageBlindPicWatermarkResponseBody;
|
||||
import com.heyu.api.alibaba.handle.imageenhan.AImageDecodeBlindCharacterWatermarkHandle;
|
||||
import com.heyu.api.alibaba.handle.imageenhan.AImageEncodeBlindPicWatermarkHandle;
|
||||
import com.heyu.api.alibaba.request.imageenhan.AImageDecodeBlindCharacterWatermarkRequest;
|
||||
import com.heyu.api.alibaba.request.imageenhan.AImageEncodeBlindPicWatermarkRequest;
|
||||
import com.heyu.api.controller.BaseController;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.request.imageenhan.ImageBlindCharacterWatermarkReq;
|
||||
import com.heyu.api.resp.imageenhan.ImageBlindCharacterWatermarkResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/image")
|
||||
@NotIntercept
|
||||
public class ImageBlindCharacterWatermarkController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private AImageEncodeBlindPicWatermarkHandle aImageEncodeBlindPicWatermarkHandle;
|
||||
|
||||
@Autowired
|
||||
private AImageDecodeBlindCharacterWatermarkHandle aImageDecodeBlindCharacterWatermarkHandle;
|
||||
|
||||
@RequestMapping("/characterWatermark")
|
||||
@CacheResult
|
||||
public R characterWatermark(ImageBlindCharacterWatermarkReq req) {
|
||||
ImageBlindCharacterWatermarkResp resp = new ImageBlindCharacterWatermarkResp();
|
||||
// 图片加密
|
||||
if ("encode".equals(req.getType())) {
|
||||
AImageEncodeBlindPicWatermarkRequest aImageEncodeBlindPicWatermarkRequest = new AImageEncodeBlindPicWatermarkRequest();
|
||||
aImageEncodeBlindPicWatermarkRequest.setFunctionType("encode_pic_plus");
|
||||
aImageEncodeBlindPicWatermarkRequest.setWatermarkUrl(req.getImageUrl());
|
||||
aImageEncodeBlindPicWatermarkRequest.setWatermarkBase64(req.getImageBase64());
|
||||
aImageEncodeBlindPicWatermarkRequest.setQualityFactor(req.getQualityFactor());
|
||||
ApiR<ImageBlindPicWatermarkResponse> aR = aImageEncodeBlindPicWatermarkHandle.handle(aImageEncodeBlindPicWatermarkRequest);
|
||||
if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) {
|
||||
ImageBlindPicWatermarkResponseBody.ImageBlindPicWatermarkResponseBodyData responseBodyData = aR.getData().getBody().getData();
|
||||
resp.setImageURL(responseBodyData.getWatermarkImageURL());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
return R.error(aR.getErrorMsg());
|
||||
|
||||
// 图片解密
|
||||
} else if ("decode".equals(req.getType())) {
|
||||
AImageDecodeBlindCharacterWatermarkRequest aImageDecodeBlindCharacterWatermarkRequest = new AImageDecodeBlindCharacterWatermarkRequest();
|
||||
aImageDecodeBlindCharacterWatermarkRequest.setImageBase64(req.getImageBase64());
|
||||
aImageDecodeBlindCharacterWatermarkRequest.setImageUrl(req.getImageUrl());
|
||||
ApiR<ImageBlindCharacterWatermarkResponse> ar = aImageDecodeBlindCharacterWatermarkHandle.handle(aImageDecodeBlindCharacterWatermarkRequest);
|
||||
if (ar.isSuccess() && isSuccessStatusCode(ar.getData().getStatusCode())) {
|
||||
ImageBlindCharacterWatermarkResponseBody.ImageBlindCharacterWatermarkResponseBodyData responseBodyData = ar.getData().getBody().getData();
|
||||
resp.setImageURL(responseBodyData.getTextImageURL());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
}
|
||||
return R.error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@ import lombok.Data;
|
||||
|
||||
|
||||
|
||||
|
||||
@Data
|
||||
public class GenerateDynamicImageReq extends CommonReq {
|
||||
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
package com.heyu.api.request.imageenhan;
|
||||
|
||||
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
/***
|
||||
*
|
||||
*/
|
||||
@Data
|
||||
public class GenerateSuperResolutionImageReq extends CommonReq {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 图像放大倍数。支持 1,2,3,4,默认为 2。
|
||||
*
|
||||
* 示例值:
|
||||
* 2
|
||||
*/
|
||||
private Integer scale = 4 ;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 输出图像的质量因子,值越大质量越高。取值范围[30,100],默认 95,仅当outputFormat为jpg时有效。
|
||||
*
|
||||
* 示例值:
|
||||
* 95
|
||||
*/
|
||||
private Integer outputQuality = 95;
|
||||
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
package com.heyu.api.request.imageenhan;
|
||||
|
||||
|
||||
import com.heyu.api.request.CommonReq;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageBlindCharacterWatermarkReq extends CommonReq {
|
||||
|
||||
/**
|
||||
* 指定调用功能。包括:
|
||||
*
|
||||
* encode 加水印
|
||||
*
|
||||
* decode 解水印
|
||||
*
|
||||
*/
|
||||
private String type = "encode";
|
||||
|
||||
|
||||
/**
|
||||
* 输出图像的质量大小。图像越大质量越高,取值范围 1~100,默认 100。
|
||||
*
|
||||
* 说明 仅当 OutputFileType 为jpg时有效。
|
||||
* 示例值:
|
||||
* 100
|
||||
*/
|
||||
private Integer qualityFactor = 50;
|
||||
|
||||
|
||||
/**
|
||||
* 待加入的水印文字,字数不超过 16 个,超过会影响加水印效果。展开详情
|
||||
*
|
||||
* 示例值:
|
||||
* 阿里云版权所有一二三四五六七八九
|
||||
*/
|
||||
private String text ;
|
||||
|
||||
}
|
||||
@ -0,0 +1,11 @@
|
||||
package com.heyu.api.resp.imageenhan;
|
||||
|
||||
import com.heyu.api.resp.CommonImageUrlResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class GenerateSuperResolutionImageResp extends CommonImageUrlResp {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,12 @@
|
||||
package com.heyu.api.resp.imageenhan;
|
||||
|
||||
|
||||
import com.heyu.api.resp.CommonImageUrlResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ImageBlindCharacterWatermarkResp extends CommonImageUrlResp {
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user