큰 원본 이미지가 있고 원 안의 캔버스 부분을 투명하게 유지하면서 원 안에 작은 섹션을 표시하고 싶습니다.HTML5 globalCompositeOperation 대 클립
Mozilla guide to Compositing with HTML5은 globalCompositeOperation
과 clip
의 두 가지 주제를 다룹니다. 두 가지 모두은 내가 원하는 것을 할 수있게 해 주므로 각 단점이 무엇인지, 어떤 것을 사용해야하는지 궁금합니다.
globalCompositeOperation
에서 source-atop
(또는 source-in
이지만 그 중 seems buggy in WebKit)으로 설정할 수 있습니다. 그런 다음 목적지 캔버스를 검은 색 원으로 투명하게 만들고 그 위에 원본 이미지를 그립니다. 이렇게하면 원형 부분 만 채워질 것입니다.
또는 원형 경로를 그리고 clip
을 사용하여 클리핑 영역을 정의한 다음 원본 이미지를 그리면 원형 부분 만 보장됩니다. (위의 모질라의 페이지는 별들과 거의 비슷한 예제를 가지고 있습니다.)
- 이 두 기술은 모두 내가 말하는 것처럼 작동합니까, 아니면 뭔가 빠져 있습니까?
- 그렇다면이 중 하나의 기술을 가진 주요 결함이있어 다른 것보다 분명히 좋게 만들 수 있습니까?
- 그렇지 않은 경우 일반적으로 어느 성능이 더 좋습니까?
I (순전히 추측) 것 clip
작업이 다각형 교차 할 필요가있는 반면이, 당 픽셀 수준의 조작을 적용하기 때문에 globalCompositeOperation
가, 더 나은 성능을 것 상상한다. 그러나 그것은 단지 직감입니다.
우수. 감사합니다 (jsperf 벤치 마크에 +1). 클립을 잘못 이해 한 것 같습니다. 폴리곤 테스트를 수행하고 있다고 생각하지 않습니다. 그것은 드로잉 할 때 픽셀을 무시하는 픽셀 별 맵을 구성하기 때문에 더 빠르다는 것이 맞습니다. 원의 배경을 다른 캔버스의 꼭대기에 그려 넣을 계획 이었지만 더 느리게 진행될 것입니다. 그래서 나는 클립으로 갈 것이다. 감사! – mgiuca