하나의 이미지를 만들기 위해 여러 캔버스에 가입하고 싶습니다. 하나의 이미지를 만들기 위해 하나 이상의 캔버스를 toDataURL
으로 변환하는 방법이 있습니까?여러 캔버스를 html5의 dataURL로 변환
답변
이 예제를 시도해 보면 도움이되기를 바랍니다. here
//html block
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
</canvas>
<canvas id="myCanvas1" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<canvas id="Canvasimage" width="500" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<img id="finalimage" width="500" height="100" style="border:1px solid #c3c3c3;"/>
//script block
function loadImages(sources, callback) {
var images = {};
var loadedImages = 0;
var numImages = 0;
// get num of sources
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function() {
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
window.onload = function (images) {
//Canvas first here
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0, 0, 200, 100);
//Canvas second here
var c1 = document.getElementById("myCanvas1");
var ctx1 = c1.getContext("2d");
ctx1.fillStyle = "#00FF00";
ctx1.fillRect(0, 0, 200, 100);
//Canvas final here.
var canvas = document.getElementById("Canvasimage");
var context = canvas.getContext("2d");
var sources = {
darthVader: c.toDataURL("image/png"),
yoda: c1.toDataURL("image/png")
};
loadImages(sources, function (images) {
context.drawImage(images.darthVader, 100, 30, 200, 137);
context.drawImage(images.yoda, 350, 55, 93, 104);
//finalimage here which has two canvas data
var finalimage = document.getElementById("finalimage");
finalimage.src = canvas.toDataURL("image/png");
});
};
번호. 하나의 캔버스와 여러 개의 이미지가 있습니다. 여러 캔버스가 필요합니다 –
@Rana Muhammad Usman 업데이트 됨 응답 plz 참조. – Tamkeen
예, 캔버스 2 차원 렌더링 컨텍스트의 drawImage
메서드는 이미지 요소로 캔버스 요소를 허용합니다. 그래서 당신이해야 할 모든은 다음과 같습니다
- 는
- 이 새로운 캔버스에서 최종 이미지를 추출
drawImage
- 와 다른 모든 캔버스 그리기 컨텍스트 얻기 새로운 캔버스
- 만들기
여러 인자 (캔버스 요소)를 하나의 빈 캔버스에 놓은 다음 새로 만든 캔버스에 대한 dataurl을 반환하는 함수를 만듭니다.
var getImadeData = function() {
var i = arguments.length,
tempCanvas = document.createElement("canvas"),
ctx = tempCanvas.getContext("2d");
while (i--) {
ctx.drawImage(arguments[i], 0, 0);
};
return tempCanvas.toDataURL();
};
이제는 하나의 데이터 입력란에 넣으려는 여러 개의 캔버스 요소를 피드하십시오.
var newData = getImageData(canvas1, canvas2, canvas3);
이 예제에서는 마지막 캔버스가 먼저 빈 캔버스에 배치되므로 캔버스 요소를 적절하게 정렬해야합니다.
코드와 함께 몇 가지 설명을하십시오. 그런 식으로 미래의 방문자는 자신이 무엇을보고 있는지 알게되고 기부금에 대한 더 많은 상향 회신을받을 수 있습니다. –
몇 가지 설명을 추가했지만 솔직히 조금 불필요하다고 느낍니다. 특히 세부적인 것이 필요하다고 느낀 점이 있었습니까? – r11
- 1. 캔버스를 pdf로 변환
- 2. AWT 캔버스를 스윙으로 변환
- 3. 여러 캔버스를 표시하는 방법?
- 4. JavaScript 클래스에서 HTML5의 캔버스를 올바르게 사용하는 방법은 무엇입니까?
- 5. html5의 캔버스 안에 캔버스
- 6. 캔버스를 사용한 인터페이스 디자인
- 7. 파이썬 Tkinter 캔버스를 창 좌표로 변환
- 8. HTML5의 드래그 앤 드롭 캔버스
- 9. HTML5의 여러 파일 업 로더 - 브라우저 지원?
- 10. html5의 버튼으로 이미지 사용
- 11. HTML5의 대화 형 평면도
- 12. HTML5의 대화식 이미지
- 13. 한 번에 여러 캔버스를 그릴 수 있습니까?
- 14. HTML5 : 하나의 주 캔버스에 여러 캔버스를 칠하십시오.
- 15. 이미지를 로컬 저장을 위해 DataURL로 변환 할 때 EXIF가 제거 되었습니까?
- 16. 캔버스 HTML5의 수정 된 크기
- 17. 캔버스를 드로어 블로 변환하기
- 18. HTML5의 캔버스로 사전 렌더링하기위한 가장 좋은 방법은 무엇입니까?
- 19. GStreamer를 여러 출력으로 변환/변환 변환
- 20. 캔버스를 사용하여 C#/WPF에서 다른 캔버스를 마스킹합니다.
- 21. 멀티 레이어 HTML5 캔버스를 레이어 이미지로 사용하기
- 22. android : 캔버스를 비트 맵으로 변환 한 다음 SD 카드에 저장
- 23. Zend_Form_Element_File 및 HTML5의 다중 속성을 사용하여 여러 파일 업로드
- 24. 여러 도메인에서 HTML5의 pushState()를 사용할 수 있습니까?
- 25. HTML5의 Canvas에서 여러 개의 이미지를 그릴 수 있습니까?
- 26. HTML5의 비동기 호출?
- 27. html5의 드롭 다운 메뉴
- 28. HTML5의 Ondrop 이벤트
- 29. html5의 UDP 주소
- 30. HTML5의 다른 데이터 형식
모든 캔버스의 그림을 더 큰 임시 캔버스로 복사 한 다음 나중에 'toDataURL()'을 호출 할 수 있습니다. – Ammar
thnx @Ammar 당신이 저에게 참고 plz을 제공 할 수 있습니까 –
@ 뮤 하마드 Usmar : 아래의 'bennedich'가 제공 한 대답은 내가 말한 것과 같은 접근법입니다. 캔버스의'drawImage()'함수를 사용하십시오. 더 이상의 어려움이 있으면 알려주십시오. – Ammar