Canvas에서 이미지가 그려지는 웹 사이트를 만든 다음 나중에 버튼을 눌러 특정 부분을 ctx.fill() 할 수 있습니다. 색상. 나는 내가 원하는 모양이 아닌 가장 최근에 생성 된 모양 만 ctx.fill() 할 수있는 문제를 겪고 있습니다.HTML5 Canvas - 특정 컨텍스트를 채우는 방법
다음은 예입니다. 이 코드에서는 (live at http://build.rivingtondesignhouse.com/piol/test/) 첫 번째 사각형을 그린 다음 스택에 save() 한 다음 두 번째 사각형을 그립니다 (그리고 저장하지 않음). 그러면 fill() 함수가 호출 될 때 첫 번째 사각형을 복원()하고 다른 패턴으로 ctx.fill()을 수행하려고합니다. 그것은 작동하지 않습니다!
사실 실제로이 복잡한 모양의 회색 부분을 사용자가 이미지를 그린 후 사용자가 선택한 색상으로 채우려고합니다. 그러나이 기술은 동일하다고 생각합니다. (http://build.rivingtondesignhouse.com/piol/test/justTop.html)
미리 도움 주셔서 감사합니다 !!!
여기에 코드입니다 :
<script type="text/javascript">
var canvas;
var ctx;
function init() {
canvas = document.getElementById("canvas");
ctx = canvas.getContext("2d");
draw();
}
function draw() {
ctx.fillStyle = '#FA6900';
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.shadowBlur = 4;
ctx.shadowColor = 'rgba(204, 204, 204, 0.5)';
ctx.fillRect(0,0,15,150);
ctx.save();
ctx.fillStyle = '#E0E4CD';
ctx.shadowOffsetX = 10;
ctx.shadowOffsetY = 10;
ctx.shadowBlur = 4;
ctx.shadowColor = 'rgba(204, 204, 204, 0.5)';
ctx.fillRect(30,0,30,150);
}
function fill(){
var image = new Image();
image.src = "http://www.html5canvastutorials.com/demos/assets/wood-pattern.png";
image.onload = drawPattern;
function drawPattern() {
ctx.restore();
ctx.fillStyle = ctx.createPattern(image, "repeat");
ctx.fill();
}
}
init();
그건 당신이 시작해야 http://jsfiddle.net/BJTzx/! 베스트 .. – Shouvik
감사. 이 코드는 내가 게시 한 코드이지만 JSFiddle에서는 작동하지 않습니다. 해결책을 찾도록 도와 줄 수 있습니까? – user1559817
바이올린에서 작동하는 곳을 마우스 오른쪽 버튼으로 클릭하십시오. HTML 소스를 볼 수 있어야합니다. 눈에 띄는 것은 ... 붙여 넣기를 복사하여 잘못한 것과 비교하십시오. (힌트, 결과 섹션의 소스를 확인하십시오!) – Shouvik