Я немного экспериментирую с новым элементом холста в 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. Изображение просто не отображается.
Должно быть, я упустил что-то очень простое ...
javascript
html
canvas
PeeHaa
источник
источник
context.drawImage(base_image, 0, 0, 200, 200);
. Это будет рисовать base_img из позиции 0px с областью рисования 200x200px.new Image
и задаваясь вопросом, почему он всегда показывал мне предыдущее изображение. Оказывается, даже если я загружаю изображение из переменной, мне все равно приходится ждать, пока этоonload
произойдет. Спасибо!вот пример кода для рисования изображения на холсте -
В приведенном выше коде selectedImage - это элемент управления вводом, который можно использовать для просмотра изображения в системе. Дополнительные сведения о примере кода для рисования изображения на холсте с сохранением соотношения сторон:
http://newapputil.blogspot.in/2016/09/show-image-on-canvas-html5.html
источник
В моем случае я ошибся параметрами функции, а именно:
Если вы ожидаете, что они будут
вы разместите изображение за пределами холста с теми же эффектами, которые описаны в вопросе.
источник
Вы должны использовать .onload
Вот почему
Если вы загружаете изображение сначала после того, как холст уже был создан, холст не сможет передать все данные изображения для рисования изображения. Итак, вам нужно сначала загрузить все данные, которые поставляются с изображением, а затем вы можете использовать drawImage ()
источник