캔버스를 기존 캔버스 안에 넣을 수 있습니까? 가능한 경우 html5에서 수행하십시오.html5의 캔버스 안에 캔버스
답변
질문을 해석하는 데 가능한 두 가지 방법이 있습니다. 하나는 의미이다이 같은 사실 둥지 canvas
요소 자체에 :
<canvas id="outer">
<canvas id="inner"></canvas>
</canvas>
이 (validator.nu에 따라) 법적으로 허용되지만 무의미. canvas
요소의 콘텐츠는 대체 콘텐츠 용입니다. canvas
요소의 콘텐츠가 사용되는 유일한 방법은 브라우저가 canvas
을 지원하지 않는 경우입니다.이 경우 내부 canvas
요소는 표시되지 않습니다.
질문을 해석 할 수있는 다른 방법은 한 캔버스에 표시된 이미지를 다른 캔버스에 표시하는 것입니다. 이것은 매우 간단하며, context.drawImage()
의 첫 번째 매개 변수로 canvas
요소를 사용할 수 있습니다. 두 canvas
요소가있는 경우 :
<canvas id="c1" width="200" height="200"></canvas>
<canvas id="c2" width="200" height="200"></canvas>
그런 다음 this script (using jQuery) 첫 번째 canvas
에 그릴 것입니다 다음 두 번째 canvas
에 이미지로 그 네 번을 추가
var c1 = $('#c1');
var ctx1 = c1[0].getContext('2d');
ctx1.fillRect(50,50,100,100);
var c2 = $('#c2');
var ctx2 = c2[0].getContext('2d');
ctx2.drawImage(c1[0],0,0,100,100);
ctx2.drawImage(c1[0],100,0,100,100);
ctx2.drawImage(c1[0],0,100,100,100);
ctx2.drawImage(c1[0],100,100,100,100);
그러나 다시, 왜 것? 당신은 just using one 위의 두 번째 canvas
의 이미지를 복제 할 수 있습니다 :
var c1 = $('#c1');
var ctx1 = c1[0].getContext('2d');
ctx1.fillRect(25,25,50,50);
ctx1.fillRect(125,25,50,50);
ctx1.fillRect(25,125,50,50);
ctx1.fillRect(125,125,50,50);
그래서 요약 : 예, 그것은 가능하지만 간단 사용에 정말 필요가 없습니다.
두 번째 캔버스를 사용하는 이유는 (사소한 것은 아니지만) 많이 있습니다. 예를 들어, 움직이는 그래프 그리기는 그래프를 다른 오프 스크린 캔버스로 복사하고, 주 캔버스를 지운 다음, 오프 스크린 캔버스를 한 픽셀 씩 왼쪽으로 뒤로 이동시키고 누락 된 열에 새 데이터를 그려서 수행하는 것이 가장 쉽습니다. (이것은 그래프의 배경이 투명 할 때만 필요합니다.) – Phrogz
@Phrogz 예, 다양한 이미지 처리 작업도 가능합니다. 그러나 나는 "단순한 사용에서는 꼭 필요한 것은 아니다"라고 말하면서이 질문이나 대답과 관련이 없다고 생각합니다. – robertc
아마도 그렇지는 않지만 새로 온 사람은 과도하다는 것을 의미하기 위해 표현을 취할 수 있습니다. 종종 뭔가를 성취하기 위해보다 깔끔하고 최적의 방법 일 때가 있습니다. 정적 요소 (예 : 게임)가있는 캔버스가 변경되면이 기술에 큰 성능 이점이 있습니다. 비트 맵/벡터를 캔버스에 한 번만 그려야하며 업데이트 할 때 비트 맵/벡터를 기본 캔버스에 간단하게 그립니다. 좋은 대답을 위해서 +1. – MickMalone1983
다른 캔버스 안에 캔버스를 중첩하는 것은 절대적으로 의미가 없습니다. 브라우저가 canvas
을 지원하지 않으면 페이지에는 canvas
태그 안에있는 내용 만 표시됩니다. 따라서, 로버트가 말한대로하십시오 :
<canvas id="background">fallbacks/polyfills go in here...</canvas> <canvas id="foreground">.. or here, but not other canvases.</canvas>
- 1. Html5의 캔버스 안에 TextBox 만들기
- 2. html5의 캔버스 안에 스케일이없는 그림
- 3. 캔버스 HTML5의 수정 된 크기
- 4. HTML5의 드래그 앤 드롭 캔버스
- 5. 오버플로 -y가있는 div 안에 캔버스
- 6. HTML5의 캔버스 요소에 대한 redraw-event가 있습니까?
- 7. HTML5의 캔버스 + Javascript 코드가 iOS에서 작동하지 않습니다.
- 8. 이미지는 HTML5의 2D 캔버스 저장되지 않습니다
- 9. HTML5의 캔버스 요소에 지그 후 (kinect) 사용
- 10. 캔버스 지우기 캔버스 저장
- 11. 캔버스 내부에 HTML 캔버스 렌더링
- 12. 캔버스 # drawBitmap 캔버스 # SurfaceView에 drawPath
- 13. 캔버스 테이블
- 14. Texbox in html5 캔버스
- 15. OpenGL 캔버스 좌표를 HTML5 캔버스 좌표로 변환
- 16. html5 캔버스 어떻게 그리는 상태의 캔버스 스택
- 17. 캔버스 스크롤 후 Android 캔버스 터치 위치
- 18. 가장 좋은 캔버스 캔버스 응용 프로그램
- 19. 플렉스 아이 캔버스 캔버스 및 내림차순 질문
- 20. 캔버스 툴팁이 캔버스 외부에 나타 납니까?
- 21. 캔버스 : 이전 사각형
- 22. 캔버스 요소의 자식 좌표
- 23. 캔버스 스크롤링
- 24. HTML5 캔버스
- 25. ItemsControl에의 캔버스
- 26. 캔버스 : 비율
- 27. 캔버스 픽셀
- 28. 투명 캔버스,
- 29. 캔버스 그라데이션
- 30. 상쾌한 캔버스?
실제 달성하려는 내용에 대해 자세히 알려주십시오. – Phrogz