2014-09-18 4 views
1

У меня есть изображение, и я хочу, чтобы его можно было нарисовать. Я знаю, как рисовать на холсте, но моя главная проблема заключается в том, что в настоящее время, когда я нажимаю на изображение, это не холст, а изображение. Как я могу получить холст поверх изображения, чтобы рисовать на нем?Рисунок на HTML5 с использованием

У меня есть это в моем HTML:

<div class="image"> 
    <img src="http://upload.wikimedia.org/wikipedia/en/a/aa/Bart_Simpson_200px.png" alt="Bart" class="img-responsive"/> 
    <canvas></canvas> 
    <div class="caption text-center">Bart Simpson</div> 
</div> 
+0

Существует одна альтернатива. Используйте div, установите это изображение в качестве фона и на этом холсте использования div. и делай все, что хочешь. –

+0

Не могли бы вы предоставить небольшой код? Контур мог бы работать. Спасибо – user4052205

ответ

2

То, что вы хотите сделать, это ждать, пока загрузится изображение. Используйте drawImage и нарисуйте его на своем холсте. Затем сделайте все, что вы хотите сделать с вашим холстом. Наконец, вы можете экспортировать холст снова toDataURL и установить источник образа

var imageNode = document.getElementById('image'); 
 
var image = new Image(); 
 
image.src = "http://upload.wikimedia.org/wikipedia/en/a/aa/Bart_Simpson_200px.png"; 
 
image.onload = function() { 
 
\t var canvas = document.getElementById('imageCanvas'); 
 
\t canvas.width = image.width; 
 
\t canvas.height = image.height; 
 
\t var ctx = canvas.getContext('2d'); 
 
\t ctx.drawImage(image, 0, 0); 
 

 
\t // Do something like painting a green hat 
 
\t ctx.moveTo(35, 50); 
 
\t ctx.lineTo(85, 10); 
 
\t ctx.lineTo(135, 50); 
 
\t ctx.closePath(); 
 
\t ctx.fillStyle = "#009900"; 
 
\t ctx.fill(); 
 

 
\t var dataURL = canvas.toDataURL(); 
 
\t imageNode.src = dataURL; 
 
}
#image { 
 
    display: none; 
 
}
\t <img src="http://upload.wikimedia.org/wikipedia/en/a/aa/Bart_Simpson_200px.png" alt="Bart" id="image" class="img-responsive" /> 
 
<canvas id="imageCanvas"></canvas>

+0

Должны ли мы использовать 'toDataURL()' на холсте, а не в контексте? – user4052205

+0

Ты прав, отредактировал опечатку. –

Смежные вопросы