Как добавить изображение в холст
Я немного экспериментирую с новым элементом canvas в HTML.
Я просто хочу добавить изображение на холст, но по какой-то причине он не работает.
У меня есть следующий код:
HTML
<canvas id="viewport"></canvas>
CSS
canvas#viewport { border: 1px solid white; width: 900px; }
JS
var canvas = document.getElementById('viewport'),
context = canvas.getContext('2d');
make_base();
function make_base()
{
base_image = new Image();
base_image.src = 'img/base.png';
context.drawImage(base_image, 100, 100);
}
Изображение существует, и я не вижу ошибок JavaScript. Изображение просто не отображается.
Это должно быть что-то действительно простое, что я пропустил...
Ответы
Ответ 1
Возможно, вам придется подождать, пока изображение не будет загружено, прежде чем рисовать его. Попробуйте это вместо этого:
var canvas = document.getElementById('viewport'),
context = canvas.getContext('2d');
make_base();
function make_base()
{
base_image = new Image();
base_image.src = 'img/base.png';
base_image.onload = function(){
context.drawImage(base_image, 0, 0);
}
}
Т.е. нарисуйте изображение в обратном обратном направлении изображения.
Ответ 2
Обратите внимание на это. Надеюсь, это поможет вам...
var erase_image = new Image();
erase_image.src = '../images/erazer.gif';
erase_image.onload = function()
{
context.drawImage(erase_image, 78, 19);
}
Ответ 3
вот пример кода для рисования изображения на холсте -
$("#selectedImage").change(function(e) {
var URL = window.URL;
var url = URL.createObjectURL(e.target.files[0]);
img.src = url;
img.onload = function() {
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, 500, 500);
}});
В приведенном выше коде selectedImage - это элемент управления, который можно использовать для просмотра изображения в системе.
Для получения дополнительной информации о примере кода для рисования изображения на холсте при сохранении соотношения сторон:
http://newapputil.blogspot.in/2016/09/show-image-on-canvas-html5.html
Ответ 4
В моем случае я ошибся в параметрах функции, которые:
context.drawImage(image, left, top);
context.drawImage(image, left, top, width, height);
Если вы ожидаете, что они будут
context.drawImage(image, width, height);
вы поместите изображение прямо за холст с теми же эффектами, что и в вопросе.
Ответ 5
Привет, пожалуйста, найдите решение для добавления изображения:
HTML
<img src="../images/svg/Fault.svg" style="display: none;" id="fault-img"/>
<canvas class="some-class" id="some-id" height="100"></canvas>
JS
<script>
var c = document.getElementById("some-id");
var ctx = c.getContext("2d");
var img = document.getElementById("alert-img");
ctx.drawImage(img, 30, 15, 16, 16);
</script>