Saya bereksperimen sedikit dengan elemen kanvas baru di HTML.
Saya hanya ingin menambahkan gambar ke kanvas tetapi tidak berhasil karena beberapa alasan.
Saya memiliki kode berikut:
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);
}
Gambar ada dan saya tidak mendapatkan kesalahan JavaScript. Gambar tidak ditampilkan.
Pasti sesuatu yang sangat sederhana yang saya lewatkan ...
javascript
html
canvas
PeeHaa
sumber
sumber
context.drawImage(base_image, 0, 0, 200, 200);
. Itu akan menggambar base_img dari posisi 0px, dengan area gambar 200x200px.new Image
dan bertanya-tanya mengapa itu selalu menunjukkan gambar sebelumnya. Ternyata meskipun saya memuat gambar dari variabel, saya masih harus menunggu hal ituonload
terjadi. Terima kasih!berikut adalah contoh kode untuk menggambar gambar di kanvas-
Pada kode di atas, selectedImage adalah kontrol input yang dapat digunakan untuk menelusuri gambar pada sistem. Untuk detail selengkapnya tentang kode sampel untuk menggambar di kanvas dengan tetap mempertahankan rasio aspek:
http://newapputil.blogspot.in/2016/09/show-image-on-canvas-html5.html
sumber
Dalam kasus saya, saya salah mengira parameter fungsi, yaitu:
Jika Anda mengharapkannya
Anda akan menempatkan gambar tepat di luar kanvas dengan efek yang sama seperti yang dijelaskan dalam pertanyaan.
sumber
Anda harus menggunakan .onload
Inilah Alasannya
Jika Anda memuat gambar terlebih dahulu setelah kanvas dibuat, maka kanvas tidak akan bisa melewatkan semua data gambar untuk menggambar gambar. Jadi, pertama-tama Anda harus memuat semua data yang disertakan dengan gambar, lalu Anda dapat menggunakan drawImage ()
sumber