이미지 형식 지원
- html2canvas:
html2canvas
는 캔버스에 이미지를 그린 후, 이를 PNG 형식으로 내보냅니다. JPEG 형식은 지원하지 않지만, 캔버스 데이터를 활용하여 다양한 형식으로 변환할 수 있습니다. - dom-to-image:
dom-to-image
는 PNG, JPEG 및 SVG 형식으로 이미지를 생성할 수 있습니다. 특히 SVG 형식 지원이 뛰어나며, 벡터 그래픽을 정확하게 캡처할 수 있습니다.
CSS 스타일 처리
- html2canvas:
html2canvas
는 요소의 CSS 스타일을 캡처하지만, 일부 복잡한 스타일(예: 애니메이션, 필터)은 완벽하게 재현하지 못할 수 있습니다. - dom-to-image:
dom-to-image
는 CSS 스타일을 포함하여 요소의 시각적 표현을 정확하게 재현합니다. 외부 스타일 시트와 인라인 스타일 모두를 지원합니다.
SVG 지원
- html2canvas:
html2canvas
는 SVG 요소를 캡처할 수 있지만, SVG를 래스터화하여 PNG로 변환합니다. 이 과정에서 벡터 정보가 손실됩니다. - dom-to-image:
dom-to-image
는 SVG 요소를 직접 캡처하고, SVG 형식으로 저장할 수 있습니다. SVG 그래픽을 포함한 요소의 이미지를 정확하게 생성합니다.
비동기 처리
- html2canvas:
html2canvas
는 비동기적으로 캡처 작업을 수행하며, Promise를 반환하여 캡처 완료 후 결과를 처리할 수 있습니다. - dom-to-image:
dom-to-image
는 비동기적으로 이미지를 생성하며, Promise를 반환하여 이미지 생성 완료 후 작업을 수행할 수 있습니다.
사용 예시
- html2canvas:
html2canvas
를 사용한 캡처 예시import html2canvas from 'html2canvas'; const element = document.getElementById('my-element'); html2canvas(element) .then((canvas) => { document.body.appendChild(canvas); const img = canvas.toDataURL('image/png'); console.log(img); }) .catch((error) => { console.error('Error capturing element:', error); });
- dom-to-image:
dom-to-image
를 사용한 이미지 생성 예시import { toPng } from 'dom-to-image'; const node = document.getElementById('my-node'); toPng(node) .then((dataUrl) => { const img = new Image(); img.src = dataUrl; document.body.appendChild(img); }) .catch((error) => { console.error('Error generating image:', error); });