<!--
使用脚本绘制图形
canvas是位图(最小单位由像素组成,色彩丰富,缩放失帧)
-->
<canvas id="can" width="500" height="500" style="border: 1px solid red;"></canvas>
<button id="copy">复制</button>
<div id="qrcode"></div>
<script src="./qrcode.js"></script>
<script>
var can = document.getElementById('can');
var ctx = can.getContext("2d");
console.log(ctx);
ctx.fillStyle = 'pink';
ctx.fillRect(20, 20, 200, 200);
ctx.strokeStyle = 'purple';
ctx.strokeRect(20, 230, 200, 200);
ctx.clearRect(0, 0, 500, 500);
ctx.fillStyle = '#fff';
ctx.fillRect(0, 0, 500, 500);
ctx.strokeStyle = 'purple';
ctx.beginPath();
ctx.moveTo(50, 50);
ctx.lineTo(90, 150);
ctx.lineTo(10, 150);
ctx.closePath();
ctx.stroke();
ctx.fillStyle = 'red';
ctx.fill();
ctx.font = "20px sans-serif";
ctx.fillText('ikun', 90, 150);
new QRCode(document.getElementById("qrcode"), {
text: "https://kuwo.cn",
width: 128,
height: 128,
colorDark: "pink",
colorLight: "#ff6700",
correctLevel: QRCode.CorrectLevel.H
});
var qrImg = qrcode.getElementsByTagName('img')[0];
console.log(qrImg);
qrImg.onload = function () {
ctx.drawImage(qrImg, 200, 200);
}
copy.onclick = function() {
can.toBlob(function(blob) {
console.log(blob);
var item = new ClipboardItem({"image/png": blob});
navigator.clipboard.write([item]).then(() => {
console.log('复制成功!');
})
})
}
<canvas id="can" width="500" height="500" style="border: 1px solid red;"></canvas>
<input type="range" id="range" max="20" min="1" value="1">
<input type="color" id="color">
<button id="clear">清除</button>
var can = document.getElementById('can');
var ctx = can.getContext('2d');
console.log(ctx);
// mousexxx都是鼠标事件 在移动端都无法使用
// 移动端都是touch事件
can.ontouchstart = can.onmousedown = function() {
console.log(666, event);
ctx.beginPath();
ctx.moveTo(event.offsetX, event.offsetY);
can.onmousemove = function() {
ctx.lineTo(event.offsetX, event.offsetY);
ctx.stroke();
}
can.ontouchmove = function() {
console.log(event);
var x = event.changedTouches[0].pageX - can.offsetLeft;
var y = event.changedTouches[0].pageY - can.offsetTop;
ctx.lineTo(x, y);
ctx.stroke();
}
}
can.onmouseup = can.onmouseleave = function() {
can.onmousemove = null;
}
range.oninput = function() {
console.log(range.value);
ctx.lineWidth = range.value;
}
color.onchange = function() {
console.log(color.value);
ctx.strokeStyle = color.value;
}
clear.onclick = function() {
ctx.clearRect(0, 0, 500, 500)
}