feDisplacementMap 설명
먼저 이 SVG 필터가 무엇을 할 수 있는지 봅시다.
feDisplacementMap
는 in
및 in2
두 개의 입력 소스를 받습니다. in
는 변위될 이미지이고 in2
는 in
가 변위되는 방법을 계산하는 데 사용됩니다. 이 경우 in
에 숲 이미지를 사용하고 feTurbulence으로 만든 이미지를 사용했습니다. 따라서 숲 이미지에 잔물결 같은 효과를 만들 수 있습니다.본질적으로
feDisplacementMap
가 하는 일은 이미지의 각 픽셀을 반복하고 변환 공식에 따라 픽셀을 이동하는 것입니다.변환 공식
P'(x,y) ← P( x + scale * (XC(x,y) - 0.5), y + scale * (YC(x,y) - 0.5))
공식을 분석하면 다음과 같습니다.
P'(x, y)
왼쪽은 변환 후 좌표 XC(x,y)
와 YC(x,y)
는 in2
이미지에서 주어진 좌표의 RGB 값을 255로 나눈 값을 의미하므로 0과 1scale
가 클수록 픽셀이 더 많이 변위됨예시
<filter>
<!-- ... -->
<feDisplacementMap in2="turbulence" in="SourceGraphic" scale="50"
xChannelSelector="R" yChannelSelector="G"/>
</filter>
feDisplacementMap
의 구문과 변환 공식을 비교하면 다음을 알 수 있습니다.scale
에 해당합니다.XC(x,y)
.YC(x,y)
.Note: SourceGraphic is the original input to the SVG filter, which is the forest image.
전체 예는 다음과 같습니다.
<svg>
<defs>
<filter id="displace">
<feTurbulence id="turbulence" baseFrequency="0.1 0.1" result="turbulence" />
<feDisplacementMap in2="turbulence" in="SourceGraphic" scale="10" xChannelSelector="A" yChannelSelector="A"/>
</filter>
</defs>
<image href="https://images.unsplash.com/photo-1441974231531-c6227db76b6e?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1171&q=80" height="100%" width="100%" filter="url(#displace)"/>
</svg>
이제 우리는 feDisplacementMap을 이해했습니다.
feDisplacementMap
를 사용하여 흥미로운 그래픽을 창의적으로 실험할 수 있습니다!Reference
이 문제에 관하여(feDisplacementMap 설명), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/matteo1222/explained-4a4b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)