Java 利用基础图像分量显示SVG图像
我试图使用CQ5.6中的图像组件在页面上包含SVG图像。通过将图像从content finder拖到组件,我可以让组件使用SVG,但这也会导致日志中出现错误:Java 利用基础图像分量显示SVG图像,java,svg,aem,javax.imageio,Java,Svg,Aem,Javax.imageio,我试图使用CQ5.6中的图像组件在页面上包含SVG图像。通过将图像从content finder拖到组件,我可以让组件使用SVG,但这也会导致日志中出现错误: Caused by: javax.imageio.IIOException: No decoder available to load the image at com.day.image.Layer.<init>(Layer.java:786) at com.day.image.Layer.<init&
Caused by: javax.imageio.IIOException: No decoder available to load the image
at com.day.image.Layer.<init>(Layer.java:786)
at com.day.image.Layer.<init>(Layer.java:588)
at com.day.image.Layer.<init>(Layer.java:511)
at com.day.cq.commons.ImageHelper.createLayer(ImageHelper.java:173)
at com.day.cq.commons.ImageResource.getLayer(ImageResource.java:569)
at libs.foundation.components.parbase.img_GET.writeLayer(img_GET.java:72)
at com.day.cq.wcm.commons.AbstractImageServlet.doGet(AbstractImageServlet.java:80)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.mayService(SlingSafeMethodsServlet.java:268)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:344)
at org.apache.sling.api.servlets.SlingSafeMethodsServlet.service(SlingSafeMethodsServlet.java:375)
at org.apache.sling.scripting.java.impl.ServletWrapper.service(ServletWrapper.java:126)
at org.apache.sling.scripting.java.impl.JavaScriptEngineFactory.callServlet(JavaScriptEngineFactory.java:211)
... 88 more
我已经多次尝试通过包含javax.imageio的SVG实现来添加对SVG的支持,但尚未成功。我最接近成功的一次是使用蜡染,在这种情况下,CQ5似乎陷入了Layer.java:769-781的无限循环中
有人能让OOTB图像组件与SVG图像一起工作吗?我遇到了同样的问题。我试图从CRX手动下载该文件,并在默认图像查看器中打开该文件。不幸的是,我的默认图像查看器也出现了相同的错误
对我来说,问题在于上传部分图像。我传入的InputStream跳过了一些要写入的字节,因为我在写入之前使用了一些字节来验证上载文件的mediaType。你知道这一点吗?我也有类似的问题。我甚至不在乎是否使用默认组件,但就我的一生而言,我无法让AEM提供SVG,而不抱怨解码器或提供内容配置:附件。见: