짧은 버전 : 일부 그래픽 파이프 라인에서 그래픽 DOM 노드를 DOM 트리에 추가해야합니까?DOM 트리 외부의 그래픽 요소
HTML5 웹 애플리케이션이 눈에 띄게 DOM 트리에서 그들을 포함하여 이외의 목적으로 그래픽 DOM 요소를 사용하는 방법은 여러 가지가 같습니다 <video>
요소가 capture a webcam stream에 사용될 수
- 현재 프레임을로드는 into a WebGL texture
<canvas>
에 붙어 있습니다. <canvas>
요소는 오프 스크린 이미지 (2d 그래픽 또는 WebGL 사용)를 준비하는 데 사용될 수 있으며 다른 이미지는<canvas>
과 a global alpha applied to the content as a whole으로 구성 될 수 있습니다.<img>
은<canvas>
으로 그려져 access to its individual pixels을 얻거나 원래 있었던 것으로부터 PNG로 변환 할 수 있습니다. 전체에
, 나는 CanvasImageSource 및 TexImageSource 지속적으로 내 질문에 관련 이미지 소스 및 목적지로 <canvas>
의 2D 및 WebGL이 상황 등 <img>
, <video>
및 <canvas>
의 이름을 말할 것입니다.
이러한 처리 단계가 작동하려면 현재 문서의 DOM 트리에 원본 요소, 대상 요소 또는 둘 다를 첨부해야한다는 요구 사항이 있습니까?
아직까지 첨부되지 않은 요소로 작업하여 호환성 문제가 발생하지 않았습니다. 하지만 현대적인 브라우저에서 개발하는 경향이 있습니다. 거대한 머신 파크가 없어 테스트를 수행 할 수 없었습니다. 그리고 지금까지는 보수적이었으며 (CSS 가시성이있는 hidden
) 트리를 안전한 측면에 추가하기 위해 노드를 추가했습니다. . 이것에 대해 신뢰할 수있는 가이드 라인을 가지고있는 것이 좋을 것입니다. 일부 권위있는 스펙에서 확인하는 것이 좋겠지 만 합리적으로 포괄적 인 테스트도 훌륭 할 것입니다. 그러한 지침을 알고 있습니까?
(보너스 질문 : 하나는 위에서 설명한 기술을 사용하여 다른 문서를 만든 그래픽 요소를 결합 할 수 있는지 여부를 지배하는 어떤 사양이?)
Canvas를 DOM에 추가하지 않고 메모리에서 완전히 사용할 수 있습니다. 'context.toDataURL' 메소드를 사용하여 결과를 내보낼 수 있습니다. – markE