Canvas学习笔记2

    科技2024-01-06  99

    画图片

    var canvas = document.querySelector("#canvas"); var ctx = canvas.getContext("2d"); //绘制图像 // ctx.drawImage(图片对象,x位置,y位置) // ctx.drawImage(图片对象,x位置,y位置,宽度,高度) // ctx.drawImage(图片对象,图像裁剪的位置x,图像的裁剪位置y,裁剪的宽度,裁剪的高度,x位置,y位置,宽度,高度) var img = new Image() img.src="img/cat.jfif" var img2 = new Image() img2.src="img/cat.jpg" //图片载入之后再绘制内容 img.onload= function(){ ctx.drawImage(img,50,50) ctx.fillText("水印文字",500,500) } img2.onload= function(){ ctx.drawImage(img2,150,150,200,150) }

    画视频

    <canvas id="canvas" width="800" height="600"></canvas> <video width="800" height="" src="img/mov_bbb.mp4" controls="controls"></video> <script> var video = document.querySelector("video") var canvas = document.querySelector("#canvas") var interId; var ctx = canvas.getContext('2d') video.onplay=function(){ interId = setInterval(function(){ //清除上一帧内容 ctx.clearRect(0,0,800,600) //设置底色 ctx.fillRect(0,0,800,600) ctx.drawImage(video,0,70,800,440) //给视频加水印 ctx.font="20px 微软雅黑" ctx.strokeStyle = "#999" ctx.strokeText("水印文字",50,50) },16} // 间隔16是每秒钟60帧的刷新频率,,1000毫秒除60帧约等于16 } video.onpause = function(){ clearInterval(interId) } </script>

    获取画布上某一矩形块位置的像素色彩数据

    //参数 x位置,y位置,宽度,高度 var imgData = ctx.getImageData(0,0,10,10)

    返回的结果是一个ImageData对象的数组,数组里面每4个元素项代表一个rgba

    putImageData把图像数据放回画布上

    var imageData2 = ctx2.vreateImageData(28,28) for(var i=0;i<imgData.data.length;i++){ imgData2.data[i] = imgData.data[i] } ctx2.putImageData(imgData2,0,0,0,0,28,28)
    Processed: 0.022, SQL: 8