From c04a19c0212666738ecb7f86256b89c0d10b84e8 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Wed, 19 Mar 2025 23:56:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imageseg/ChangeSkyController.java | 64 ++++++++++++++++ .../imageseg/ParseFaceController.java | 74 +++++++++++++++++++ .../imageseg/SegmentBodyController.java | 63 ++++++++++++++++ .../imageseg/SegmentClothController.java | 73 ++++++++++++++++++ .../api/request/imageseg/ChangeSkyReq.java | 25 +++++++ .../api/request/imageseg/ParseFaceReq.java | 11 +++ .../api/request/imageseg/SegmentBodyReq.java | 27 +++++++ .../api/request/imageseg/SegmentClothReq.java | 4 + .../heyu/api/resp/imageseg/ChangeSkyResp.java | 12 +++ .../resp/imageseg/ParseFaceDataElements.java | 25 +++++++ .../heyu/api/resp/imageseg/ParseFaceResp.java | 27 +++++++ .../api/resp/imageseg/SegmentBodyResp.java | 8 ++ .../api/resp/imageseg/SegmentClothResp.java | 35 +++++++++ 13 files changed, 448 insertions(+) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ChangeSkyController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ParseFaceController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentBodyController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentClothController.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ChangeSkyReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ParseFaceReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentBodyReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentClothReq.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ChangeSkyResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceDataElements.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentBodyResp.java create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentClothResp.java diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ChangeSkyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ChangeSkyController.java new file mode 100644 index 0000000..7816fa6 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ChangeSkyController.java @@ -0,0 +1,64 @@ +package com.heyu.api.controller.imageseg; + + +import com.aliyun.imageseg20191230.models.ChangeSkyResponse; +import com.aliyun.imageseg20191230.models.ChangeSkyResponseBody; +import com.heyu.api.alibaba.handle.imageseg.AChangeSkyHandle; +import com.heyu.api.alibaba.request.imageseg.AChangeSkyRequest; +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.imageseg.ChangeSkyReq; +import com.heyu.api.resp.imageseg.ChangeSkyResp; +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/imageseg/2019-12-30/ChangeSky + * + *天空替换 ChangeSky + * + * 功能描述 + * 输入两种图像,天空替换能力可以将参考图 B 的天空样式替换到目标图 A 中,从而改变目标图 A 的天空样式,实现换天功能。 关于该接口功能的示例图如下 + * + * + * + */ +@Slf4j +@RestController +@RequestMapping("/image") +@NotIntercept +public class ChangeSkyController extends BaseController { + + + @Autowired + private AChangeSkyHandle aChangeSkyHandle; + + + @RequestMapping("/changeSky") + @CacheResult + public R changeSky(ChangeSkyReq request) { + ChangeSkyResp resp = new ChangeSkyResp(); + + AChangeSkyRequest aChangeSkyRequest = new AChangeSkyRequest(); + aChangeSkyRequest.setImageUrl(request.getImageUrl()); + aChangeSkyRequest.setImageBase64(request.getImageBase64()); + aChangeSkyRequest.setReplaceImageBase64(request.getReplaceImageBase64()); + aChangeSkyRequest.setReplaceImageURL(request.getReplaceImageURL()); + ApiR aR = aChangeSkyHandle.handle(aChangeSkyRequest); + + + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + ChangeSkyResponseBody.ChangeSkyResponseBodyData responseBodyData = aR.getData().getBody().getData(); + resp.setImageURL(responseBodyData.getImageURL()); + return R.ok().setData(resp); + } + return R.error(aR.getErrorMsg()); + } + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ParseFaceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ParseFaceController.java new file mode 100644 index 0000000..a8bf97b --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/ParseFaceController.java @@ -0,0 +1,74 @@ +package com.heyu.api.controller.imageseg; + + +import com.aliyun.imageseg20191230.models.ParseFaceResponse; +import com.aliyun.imageseg20191230.models.ParseFaceResponseBody; +import com.heyu.api.alibaba.handle.imageseg.AParseFaceHandle; +import com.heyu.api.alibaba.request.imageseg.AParseFaceRequest; +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.imageseg.ParseFaceReq; +import com.heyu.api.resp.imageseg.ParseFaceDataElements; +import com.heyu.api.resp.imageseg.ParseFaceResp; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/*** + * https://next.api.aliyun.com/api/imageseg/2019-12-30/ParseFace?tab=DOC&lang=JAVA&RegionId=cn-shanghai + * + *五官分割 ParseFace + * + * + *功能描述 + * 五官分割能力可以检测输入的人脸正面图像,对眼睛、鼻子、嘴进行像素级语义分割。 + */ +@Slf4j +@RestController +@RequestMapping("/face") +@NotIntercept +public class ParseFaceController extends BaseController { + + + @Autowired + private AParseFaceHandle parseFaceHandle; + + + @RequestMapping("/parse") + @CacheResult + public R changeSky(ParseFaceReq request) { + ParseFaceResp resp = new ParseFaceResp(); + AParseFaceRequest aParseFaceRequest = new AParseFaceRequest(); + aParseFaceRequest.setImageBase64(request.getImageBase64()); + aParseFaceRequest.setImageUrl(request.getImageUrl()); + + ApiR aR = parseFaceHandle.handle(aParseFaceRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + ParseFaceResponseBody.ParseFaceResponseBodyData responseBodyData = aR.getData().getBody().getData(); + + resp.setOriginImageURL(responseBodyData.getOriginImageURL()); + List parseFaceDataElements = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(responseBodyData.getElements())) { + for (ParseFaceResponseBody.ParseFaceResponseBodyDataElements element : responseBodyData.getElements()) { + + ParseFaceDataElements elements = new ParseFaceDataElements(); + elements.setName(element.getName()); + elements.setImageURL(element.getImageURL()); + + parseFaceDataElements.add(elements); + } + } + resp.setParseFaceDataElements(parseFaceDataElements); + return R.ok().setData(resp); + } + return R.error(); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentBodyController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentBodyController.java new file mode 100644 index 0000000..f715a71 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentBodyController.java @@ -0,0 +1,63 @@ +package com.heyu.api.controller.imageseg; + + +import com.aliyun.imageseg20191230.models.SegmentBodyResponse; +import com.aliyun.imageseg20191230.models.SegmentBodyResponseBody; +import com.heyu.api.alibaba.handle.imageseg.ASegmentBodyHandle; +import com.heyu.api.alibaba.request.imageseg.ASegmentBodyRequest; +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.imageseg.SegmentBodyReq; +import com.heyu.api.resp.imageseg.SegmentBodyResp; +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/imageseg/2019-12-30/SegmentBody?tab=DOC&RegionId=cn-shanghai + * + *人体分割 + * + * SegmentBody + * + * + * 功能描述 + * 人体分割能力用于识别输入图像中的人体轮廓,与背景进行分离,返回分割后的前景人像图(4 通道)。本功能适用于真人图片,不适用于卡通图片。 关于该接口功能的示例图如下: + * + */ +@Slf4j +@RestController +@RequestMapping("/body") +@NotIntercept +public class SegmentBodyController extends BaseController { + + + @Autowired + private ASegmentBodyHandle segmentBodyHandle; + + @RequestMapping("/segment") + @CacheResult + public R changeSky(SegmentBodyReq request) { + SegmentBodyResp resp = new SegmentBodyResp(); + + ASegmentBodyRequest aSegmentBodyRequest = new ASegmentBodyRequest(); + aSegmentBodyRequest.setReturnType(request.getReturnForm()); + aSegmentBodyRequest.setImageBase64(request.getImageBase64()); + aSegmentBodyRequest.setImageUrl(request.getImageUrl()); + + + ApiR aR = segmentBodyHandle.handle(aSegmentBodyRequest); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + SegmentBodyResponseBody.SegmentBodyResponseBodyData responseBodyData = aR.getData().getBody().getData(); + resp.setImageURL(responseBodyData.getImageURL()); + return R.ok().setData(resp); + } + + + return R.error(aR.getErrorMsg()); + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentClothController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentClothController.java new file mode 100644 index 0000000..529c168 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/imageseg/SegmentClothController.java @@ -0,0 +1,73 @@ +package com.heyu.api.controller.imageseg; + +import com.aliyun.imageseg20191230.models.SegmentClothResponse; +import com.aliyun.imageseg20191230.models.SegmentClothResponseBody; +import com.heyu.api.alibaba.handle.imageseg.ASegmentClothHandle; +import com.heyu.api.alibaba.request.imageseg.ASegmentClothRequest; +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.resp.imageseg.SegmentClothResp; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/*** + * + *https://next.api.aliyun.com/api/imageseg/2019-12-30/SegmentCloth?tab=DOC&lang=JAVA&RegionId=cn-shanghai + * + *服饰分割 + * + * SegmentCloth + * + * 功能描述 + * 服饰分割能力可以对输入人台服饰、真人服饰、纯服饰、虚拟人服饰等场景图片中的主体服饰进行像素级抠图,并返回抠图结果。服饰分割主要是针对图片中的服装进行精细化分割,服饰分割标准支持外套 + * 、上装(含内衬)、裤装、裙装、帽子、鞋子、包包品类分割,其他皮带、领带等装饰品等内容建议使用商品分割。 关于该接口功能的示例图如下: 输入原图(左)和输出结果图(右) + * + * + * + */ +@Slf4j +@RestController +@RequestMapping("/cloth") +@NotIntercept +public class SegmentClothController extends BaseController { + + + @Autowired + private ASegmentClothHandle aSegmentClothHandle; + + + @RequestMapping("/segment") + @CacheResult + public R changeSky(ASegmentClothRequest request) { + List respList = new ArrayList<>(); + + ApiR aR = aSegmentClothHandle.handle(request); + if (aR.isSuccess() && isSuccessStatusCode(aR.getData().getStatusCode())) { + SegmentClothResponseBody.SegmentClothResponseBodyData responseBodyData = aR.getData().getBody().getData(); + + if (CollectionUtils.isNotEmpty(responseBodyData.getElements())) { + for (SegmentClothResponseBody.SegmentClothResponseBodyDataElements element : responseBodyData.getElements()) { + + SegmentClothResp resp = new SegmentClothResp(); + resp.setClassUrl(element.getClassUrl()); + resp.setImageURL(element.getImageURL()); + respList.add(resp); + } + return R.ok().setData(respList); + } + } + return R.error(aR.getErrorMsg()); + + } + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ChangeSkyReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ChangeSkyReq.java new file mode 100644 index 0000000..3437825 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ChangeSkyReq.java @@ -0,0 +1,25 @@ +package com.heyu.api.request.imageseg; + + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +@Data +public class ChangeSkyReq extends CommonReq { + + + /** + * 参考图 URL 地址。推荐使用上海地域的 OSS 链接,对于文件在本地或者非上海地域 OSS 链接的情况,请参见文件 URL 处理。 + * + * 示例值: + * http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/imageseg/ChangeSky/ChangeSky6.jpg + */ + private String replaceImageURL; + + + + + private String replaceImageBase64; + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ParseFaceReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ParseFaceReq.java new file mode 100644 index 0000000..e9b9a81 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/ParseFaceReq.java @@ -0,0 +1,11 @@ +package com.heyu.api.request.imageseg; + +import com.heyu.api.request.CommonReq; +import lombok.Data; + + +@Data +public class ParseFaceReq extends CommonReq { + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentBodyReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentBodyReq.java new file mode 100644 index 0000000..6bdfec2 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentBodyReq.java @@ -0,0 +1,27 @@ +package com.heyu.api.request.imageseg; + +import com.heyu.api.request.CommonReq; +import lombok.Data; + +@Data +public class SegmentBodyReq extends CommonReq { + + + /*** + * 指定返回的图像形式。 + * + * 如果设置为mask,则返回单通道黑白图。 + * + * 如果设置为crop,则返回裁剪之后的四通道 PNG 图(裁掉边缘空白区域)。 + * + * 如果设置为whiteBK,则返回白底图。 + * + * 如果不设置或者设置为其他值,则返回四通道 PNG 图。 + * + * 示例值: + * mask + * + */ + private String returnForm; + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentClothReq.java b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentClothReq.java new file mode 100644 index 0000000..6885165 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/request/imageseg/SegmentClothReq.java @@ -0,0 +1,4 @@ +package com.heyu.api.request.imageseg; + +public class SegmentClothReq { +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ChangeSkyResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ChangeSkyResp.java new file mode 100644 index 0000000..d58efd3 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ChangeSkyResp.java @@ -0,0 +1,12 @@ +package com.heyu.api.resp.imageseg; + +import com.heyu.api.resp.CommonImageUrlResp; +import lombok.Data; + + +@Data +public class ChangeSkyResp extends CommonImageUrlResp { + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceDataElements.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceDataElements.java new file mode 100644 index 0000000..5700f0a --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceDataElements.java @@ -0,0 +1,25 @@ +package com.heyu.api.resp.imageseg; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ParseFaceDataElements implements Serializable { + /*** + * 抠图结果。 抠图之后返回四通道 PNG 图,无压缩,图像尺寸保持不变,图像体积会变大。 + * + * 说明 该 URL 地址为临时地址,有效期为 30 分钟,过期后将无法访问。若需要长时间或者永久保存文件,请在 30 分钟内访问 URL 地址,下载文件转存到自己的 OSS 或者其他存储空间。 + * 示例值: + * http://vibktprfx-prod-prod-aic-gd-cn-shanghai.oss-cn-shanghai.aliyuncs.com/fivesensesegmenter/prod/560FA2E7-FDC6-59A5-ABDD-D62A05146734/skin/_18dd_20211231-040658.png?Expires=1640925418&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=2g0M88wZl%2Bn4t4gzQX%2BTIskpWB**** + */ + public String imageURL; + + /*** + * 抠图结果 key 值。具体请参见下方表格说明。 + * + * 示例值: + * skin + */ + public String name; +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceResp.java new file mode 100644 index 0000000..11fa882 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/ParseFaceResp.java @@ -0,0 +1,27 @@ +package com.heyu.api.resp.imageseg; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + +import java.util.List; + +@Data +public class ParseFaceResp extends BaseResp { + /*** + * 原始图像 URL 地址。 + * + * 示例值: + * http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/imageseg/ParseFace/ParseFace1.jpg + */ + private String originImageURL; + + /*** + * 各个子元素的分割结果。 + */ + + private List parseFaceDataElements; + + + + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentBodyResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentBodyResp.java new file mode 100644 index 0000000..6134281 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentBodyResp.java @@ -0,0 +1,8 @@ +package com.heyu.api.resp.imageseg; + +import com.heyu.api.resp.CommonImageUrlResp; +import lombok.Data; + +@Data +public class SegmentBodyResp extends CommonImageUrlResp { +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentClothResp.java b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentClothResp.java new file mode 100644 index 0000000..2747182 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/resp/imageseg/SegmentClothResp.java @@ -0,0 +1,35 @@ +package com.heyu.api.resp.imageseg; + +import com.heyu.api.data.dto.BaseResp; +import lombok.Data; + + +@Data +public class SegmentClothResp extends BaseResp { + + /*** + * 根据用户输入的clothClass返回一个服饰类别对应的 URL。 + * + * 说明 该 URL 地址为临时地址,有效期为 30 分钟,过期后将无法访问。若需要长时间或者永久保存文件,请在 30 分钟内访问 URL 地址,下载文件转存到自己的 OSS 或者其他存储空间。 + * string + * 根据用户输入的clothClass返回一个服饰类别对应的 URL。 + * + * 说明 该 URL 地址为临时地址,有效期为 30 分钟,过期后将无法访问。若需要长时间或者永久保存文件,请在 30 分钟内访问 URL 地址,下载文件转存到自己的 OSS 或者其他存储空间。 + * 示例值: + * {'tops':http://viapi-cn-shanghai-dha-segmenter.oss-cn-shanghai.aliyuncs.com/..,'hat':http://viapi-cn-shanghai-dha-segmenter...,...} + */ + public java.util.Map classUrl; + + + /*** + * 返回抠图结果图像 URL 地址。 抠图之后返回四通道 PNG 图,无压缩,图像尺寸保持不变,图像体积会变大。 + * + * 说明 该 URL 地址为临时地址,有效期为 30 分钟,过期后将无法访问。若需要长时间或者永久保存文件,请在 30 分钟内访问 URL 地址,下载文件转存到自己的 OSS 或者其他存储空间。 + * 示例值: + * http://viapi-cn-shanghai-dha-segmenter.oss-cn-shanghai.aliyuncs.com/upload/clothingsegmentation-2020-06-17-16-54-40-688c84cbbd-hnqfq/2020-6-18/invi__015924459307821000041_IIVHoM.png?Expires=1592447730&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=Hy8pn3IQj8nuKN0LEaC57cee9L**** + */ + public String imageURL; + + + +}