weisJ / jsvg

Java SVG renderer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SourceAlpha is not supported for feColorMatrix

develar opened this issue · comments

SVG:

<svg width="512" height="512" fill="none" xmlns="http://www.w3.org/2000/svg">
    <path fill="#fff" d="M0 0h512v512H0z"/>
    <g filter="url(#filter0_d)">
        <rect x="112" y="48" width="288" height="416" rx="10" fill="#fff"/>
    </g>
    <path d="M112 58c0-5.523 4.477-10 10-10h268c5.523 0 10 4.477 10 10v54H112V58z" fill="#009688"/>
    <path fill-rule="evenodd" clip-rule="evenodd"
          d="M287.368 273.773l10.652-18.45a2.219 2.219 0 00-.811-3.027 2.219 2.219 0 00-3.027.812l-10.786 18.682c-8.248-3.764-17.511-5.861-27.396-5.861-9.885 0-19.148 2.097-27.396 5.861l-10.786-18.682a2.216 2.216 0 10-3.838 2.215l10.652 18.45c-18.291 9.948-30.802 28.467-32.632 50.344h128c-1.832-21.877-14.342-40.396-32.632-50.344m-60.824 32.106a5.336 5.336 0 01-5.33-5.331c0-2.94 2.39-5.33 5.33-5.33a5.335 5.335 0 015.329 5.33 5.336 5.336 0 01-5.329 5.331m58.912 0a5.336 5.336 0 01-5.329-5.331c0-2.94 2.39-5.33 5.329-5.33 2.939 0 5.33 2.39 5.33 5.33a5.337 5.337 0 01-5.33 5.331"
          fill="#3DDC84"/>
    <defs>
        <filter id="filter0_d" x="92" y="28" width="328" height="456" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
            <feFlood flood-opacity="0" result="BackgroundImageFix"/>
            <feColorMatrix in="SourceAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
            <feOffset/>
            <feGaussianBlur stdDeviation="10"/>
            <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
            <feBlend in2="BackgroundImageFix" result="effect1_dropShadow"/>
            <feBlend in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
        </filter>
    </defs>
</svg>

Expected:
Screenshot 2023-01-31 at 17 17 24

Actual: internal error

Exception in thread "main" java.lang.IllegalStateException: Input channel [SourceAlpha] doesn't exist.
	at com.github.weisj.jsvg.nodes.filter.FilterPrimitive.channel(FilterPrimitive.java:48)
	at com.github.weisj.jsvg.nodes.filter.FilterPrimitive.inputChannel(FilterPrimitive.java:54)
	at com.github.weisj.jsvg.nodes.filter.FeColorMatrix.applyFilter(FeColorMatrix.java:107)
	at com.github.weisj.jsvg.nodes.filter.Filter.applyFilter(Filter.java:133)
	at com.github.weisj.jsvg.renderer.NodeRenderer$InfoWithFilter.close(NodeRenderer.java:85)
	at com.github.weisj.jsvg.renderer.NodeRenderer.renderNode(NodeRenderer.java:94)
	at com.github.weisj.jsvg.nodes.container.CommonRenderableContainerNode.render(CommonRenderableContainerNode.java:81)
	at com.github.weisj.jsvg.nodes.container.BaseInnerViewContainer.renderWithSize(BaseInnerViewContainer.java:142)
	at com.github.weisj.jsvg.nodes.container.BaseInnerViewContainer.renderWithSize(BaseInnerViewContainer.java:85)