首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用AbstractImageServlet获取DAM上传图片的原图?

如何使用AbstractImageServlet获取DAM上传图片的原图?
EN

Stack Overflow用户
提问于 2016-03-30 12:25:47
回答 2查看 1.7K关注 0票数 0

我们通过扩展AbstractImageServlet编写了一个自定义servlet,并根据自定义选择器注册了它,我们正在覆盖createLayer方法。从图像返回图层或从图像的原始格式副本获取图层后,都不会返回图像的原始图像和高度

代码语言:javascript
运行
复制
Image img=new Image(imageContext.resource);
Layer layer=img.getLayer(true, true, true);
return layer;

代码语言:javascript
运行
复制
Resource imgResource = imageContext.request.getResourceResolver()
                .getResource(imagePath);
        Layer layer=imgResource.getLayer(true, true, true);
        return layer;

其中imagePath是图像原始呈现的路径

DAM的原始图像大小为2048×1100,大小为220KB

但servlet从原始格式副本中获取图层后返回的图像大小为1280*687和292 KB

com.day.cq.wcm.foundation.Image类的getLayer方法不返回与原始格式副本完全相同的大小。

我们如何通过扩展AbstractImageServlet的自定义servlet来获得原始图像的自然大小?

EN

回答 2

Stack Overflow用户

发布于 2017-03-14 19:46:08

当上传的图片宽度超过1280px时,我们将面临上述情况。AbstractImageServlet.ImageContext的最大宽度为1280px。当你上传了一张宽度为2048px的图片时,它已经调整了大小。如果您尝试宽度小于1280px的图像,则不会调整其大小。

但是,您必须更新系统配置中的一个服务和一个DAM资产工作流步骤才能使其工作。

配置:天CQ DAM缓冲图像缓存属性:最大尺寸"2048x2048“

工作流步骤: DAM更新资源:处理缩略图:启用Web的图像:宽度- 2048和高度- 2048。

有关更多详细信息,请查看以下链接:

https://helpx.adobe.com/experience-manager/kb/remove-web-rendition-dimension-limit.html

https://helpx.adobe.com/experience-manager/kb/cqbufferedimagecache-consumes-heap-during-asset-uploads.html

票数 1
EN

Stack Overflow用户

发布于 2016-03-30 15:22:55

还有另一个选项来获取图层进行原始呈现-当你有图像资源时,你可以做下一件事:

代码语言:javascript
运行
复制
Asset asset = imageResource.adaptTo(Asset.class);
Rendition original = asset.getOriginal();
Layer layer = new Layer(original.getStream());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36299688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档