2
이런 일에 매달려있는 종류의 이유는 도움이 필요합니다. HTML5 및 JavaScript를 사용하여 이미지에 텍스트를 삽입하고 텍스트가있는 새 이미지를 만듭니다. 텍스트를 수동으로 추가하는 경우에는 모든 것이 좋지만 텍스트를 값으로 함수에 전달하려고하는 경우에는 발생하지 않습니다. 여기자바 스크립트, 값을 함수로 전달
function draw_text(topt,bott){
var canvas = document.getElementById("e");
var context = canvas.getContext("2d");
var img = new Image();
img.src = "testimage.jpg";
img.onload = function()
{
context.drawImage(img, 0, 0);
draw_text();
};
var toptext = this.topt;
var bottomtext = this.bott;
context.font = "12px Arial";
context.fillStyle = "white";
context.strokeStyle = 'black';
context.fillText(toptext, (img.width-context.measureText(toptext).width)/2, 40);
context.strokeText(toptext, (img.width-context.measureText(toptext).width)/2, 40);
context.fillText(bottomtext, (img.width-context.measureText(bottomtext).width)/2, 350);
};
아래의 기능 코드는 내가
draw_text('Text 1','Text 2');
하여이 함수를 호출하고 그러나 나도 캔버스는 전혀 표시되지 않거나 텍스트 '정의되지 않은'와 함께 제공됩니다. 내가 도대체 뭘 잘못하고있는 겁니까? 그건 그렇고, 중요하다면 나는이 코드를 codeigniter 뷰 파일에서하고있다.
실제로 이것은 처음 시도한 방법입니다. 일하지 않았어! 두 가지 모두 동일한 결과를 얻고 있습니다. 하지만 topt와 bott에 값을 수동으로 할당하고 function draw_text()와 같은 함수를 코딩하면 작동합니다. – user427357
글쎄, 'this'를 사용하면 확실히 작동하지 않을 것입니다. "draw_text ('asd', 'asd')"함수가 "draw_text (somevar, somevar2)"가 아닌 함수를 호출하면 전달중인 두 변수 중 하나가 null이거나 정의되지 않은 것입니다. – jdc0589
또한 편집 내 원래 대답을 확인하십시오 – jdc0589