Apakah mungkin untuk memperbaiki lebar dan tinggi canvas
elemen HTML5 ?
Cara yang biasa adalah sebagai berikut:
<canvas id="canvas" width="300" height="300"></canvas>
The canvas
elemen DOM memiliki .height
dan .width
sifat yang bersesuaian dengan height="…"
dan width="…"
atribut. Atur nilai numerik dalam kode JavaScript untuk mengubah ukuran kanvas Anda. Sebagai contoh:
var canvas = document.getElementsByTagName('canvas')[0];
canvas.width = 800;
canvas.height = 600;
Perhatikan bahwa ini menghapus kanvas, meskipun Anda harus mengikuti dengan ctx.clearRect( 0, 0, ctx.canvas.width, ctx.canvas.height);
untuk menangani browser yang tidak sepenuhnya menghapus kanvas. Anda harus menggambar ulang konten yang Anda inginkan ditampilkan setelah perubahan ukuran.
Perhatikan lebih lanjut bahwa tinggi dan lebar adalah dimensi kanvas logis yang digunakan untuk menggambar dan berbeda dari style.height
dan style.width
CSS atribut. Jika Anda tidak menetapkan atribut CSS, ukuran intrinsik kanvas akan digunakan sebagai ukuran tampilan; jika Anda menetapkan atribut CSS, dan mereka berbeda dari dimensi kanvas, konten Anda akan diskalakan di browser. Sebagai contoh:
// Make a canvas that has a blurry pixelated zoom-in
// with each canvas pixel drawn showing as roughly 2x2 on screen
canvas.width = 400;
canvas.height = 300;
canvas.style.width = '800px';
canvas.style.height = '600px';
Lihat contoh langsung dari kanvas ini yang diperbesar dengan 4x.
$('#mycanvas').attr({width:400,height:300}).css({width:'800px',height:'600px'});
Jika Anda ingin ukuran visualnya sama dengan ukuran piksel, jangan pernah mengatur gayanya, hanya atributnya.Kanvas memiliki 2 ukuran, dimensi piksel di kanvas (itu backingstore atau drawingBuffer) dan ukuran tampilan. Jumlah piksel diatur menggunakan atribut kanvas. Dalam HTML
Atau dalam JavaScript
Terpisah dari itu adalah lebar dan tinggi gaya CSS kanvas
Dalam CSS
Atau dalam JavaScript
Cara terbaik untuk membuat kanvas 1x1 piksel adalah SELALU MENGGUNAKAN CSS untuk memilih ukuran kemudian menulis sedikit JavaScript untuk membuat jumlah piksel cocok dengan ukuran itu.
Mengapa ini cara terbaik? Karena itu berfungsi dalam banyak kasus tanpa harus mengubah kode apa pun.
Ini kanvas jendela penuh:
Tampilkan cuplikan kode
Dan ini kanvas sebagai pelampung dalam paragraf
Tampilkan cuplikan kode
Ini kanvas di panel kontrol yang cukup besar
Tampilkan cuplikan kode
inilah kanvas sebagai latar belakang
Tampilkan cuplikan kode
Karena saya tidak mengatur atribut satu-satunya hal yang berubah dalam setiap sampel adalah CSS (sejauh menyangkut kanvas)
Catatan:
sumber
Terima kasih banyak! Akhirnya saya memecahkan masalah piksel kabur dengan kode ini:
<canvas id="graph" width=326 height=240 style='width:326px;height:240px'></canvas>
Dengan tambahan 'setengah-pixel' melakukan trik untuk menghapus garis-garis.
sumber
Cara terbaik untuk melakukannya:
sumber