美文网首页
canvas简单操作图片像素颜色

canvas简单操作图片像素颜色

作者: IamaStupid | 来源:发表于2023-08-03 16:59 被阅读0次

    canvas简单操作图片像素颜色

    <!DOCTYPE html>
    <html lang="">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <title>canvas</title>
        <style type="text/css">
          body {
            padding: 0; margin: 0; width: 100%; height: 100%;
          }
          canvas {
            background-color: #000;
          }
        </style>
      </head>
      <body>
        <canvas id="myCanvas"></canvas>
        <!-- built files will be auto injected -->
        <script>
          var $cvs=document.getElementById("myCanvas");
          var ctx=$cvs.getContext("2d");
    
          let ww = 700;
          let hh = 700;
    
          $cvs.width = ww;
          $cvs.height = hh;
    
          drawImg()
    
          function drawImg() {
            let img = new Image();
            img.onload = function() {
              // 从图片的(0,0)开始,裁剪宽度500,高度300的区域
              // 将裁剪的贴图,放到canvas里面(5,5)的位置,拉伸贴图的宽高为200*200
              // canvas里面(5,5)的位置是必填字段,如果参数只有一组,前面两组【0,0,500,300】的参数会使用默认值【0,0,100%, 100%】
              ctx.drawImage(img, 0, 0, 500, 300, 5, 5, 200, 200 );
    
              var imgData=ctx.getImageData(5,5,200,200);
    
              console.log(imgData)
              let row = 0;
              let col = 0;
              let groupNum = 4;
              for(let i = 0; i < imgData.data.length; i = i + 4) {
                // 四个元素是一组,表示一个元素 rgba
                let r = imgData.data[i];
                let g = imgData.data[i + 1];
                let b = imgData.data[i + 2];
                let a = imgData.data[i + 3];
                col++;
                // 现在改变图片每行,中间一个像素的颜色
                if (col === imgData.width / 2 || col === 1) {
                  imgData.data[i] = 255 - r;
                  imgData.data[i + 1] = 255 - g;
                  imgData.data[i + 2] = 255 - b;
                  imgData.data[i + 3] = a;
                } else if(col === imgData.width) {
                  row++
                  col = 0;
                }
              }
    
              ctx.putImageData(imgData,220,220);
            }
            img.src = './images/123.jpg'
          }
        </script>
    
      </body>
    </html>
    
    

    相关文章

      网友评论

          本文标题:canvas简单操作图片像素颜色

          本文链接:https://www.haomeiwen.com/subject/qnbmpdtx.html