2014-10-14 4 views

답변

1

귀하의 시나리오에 따라 다릅니다.

캔버스는 추가 메모리 버퍼를 할당하거나 할당하지 않을 수 있지만 일반적으로 디스플레이 버퍼와 백 버퍼를 공유합니다. 픽셀 비율이 1 : 1과 다른 경우 (예 : 망막 디스플레이)이 경우가 아닐 수 있습니다.

또한 캔버스의 경우 html 태그를 사용하여 만든 경우 창 크기 조정과 같은 특정 조건에서 브라우저가 지울 수 있습니다. 이것은 덜 문제가되는 것 같지만 (Chrome은 일부 대화 상자를 표시 할 때 캔버스를 지울 수 있습니다).

이미지로 변환하면 성능 및 메모리 오버 헤드가 발생하지만 처음에는 압축 된 이미지를 만든 다음 33 %의 메모리 오버 헤드를 추가하여 base-64로 변환 한 다음 이미지 원본으로 전달하여베이스 변환을 트리거합니다 -64 문자열을 이미지 파일에 넣은 다음 비트 맵으로 압축을 해제합니다.

+0

그동안 빠른 jsPerf를 만들었습니다. 캔버스를 이미지로 변환하는 것은 상당히 느립니다. http://jsperf.com/canvas-vs-converting-to-img 일단 모든 것이 렌더링되면 img를 갖는 것이 어떤 이점이 있는지 궁금합니다. – Siva

+1

@Sivapriyan 이미지는 캔버스 요소에 비해 이미지가 더 "돌이 킨"상태이며 내용을 잃어 버릴 위험이 있습니다 (일부 희소 메모리 상태는 일반적으로 바뀔 수 있습니다).). 올인 올 (all-in-all)도 캔버스 이미지에 대한 작은 위험뿐만 아니라, 생각할 수있는 실질적인 이점은 없습니다. 가능한 메모리 오버 헤드는 캔버스를 변환하는 임시 오버 헤드보다 캔버스에서 더 정적입니다. 그래도 이미지. 위험, 간접비 등은 그것이 사용될 컨텍스트 (UX는 하나의 요소 임)에 대해 가중되어야합니다. IMO – K3N

0

확인 이미지로 변환하고 캔버스 자체를 취소합니다 크기를 조정할 경우 다음 빈 공간이있을 것이다, DOM 객체

로 추가.

관련 문제