• es6之数组操作


    1.计算机存储数据是二进制的,每位只能存0或1

    2.每种语言的数字的存储都有不同位的, 常见的有每8,16,32位代表一个数字.

       n bit, 即n位数,存一个数字的范围是: 无符号:0  到   2的n次方-1;  有符号位是 -2的n/2次方  到  2的n/2-1次方; 

    3 js里, 所有的数字, 都默认是32位的.

        比如var a = 0;  这个0在内存中占了32位空间, 虽然只要1位就可以表示. 究其原因, 就是为了内存更加模块化管理.

    4  js中intArray数组中可以对数字进行不同位数的设置.  分为8/ 16/ 32三个大小的空间等级. 

    ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区; 它通常由intArray来操作.

    例子: 将图片变成黑白

    一个图片是由多个像素点组成的, 每个像素点都由四个数字组成,分别是rgba

    如果将彩色照片所有像素点的rgb 三个值都设置为 各像素点rgb三者平均值, 那么图片就变成了黑白色了.

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <meta name="viewport" content="width=device-width, initial-scale=1.0">
     6   <meta http-equiv="X-UA-Compatible" content="ie=edge">
     7   <title>Document</title>
     8   <style>
     9   .wrap, .wrap>* {
    10     /* height: 150px; */
    11   }
    12   .button{
    13     word-wrap: break-word;
    14     writing-mode: vertical-lr;
    15     writing-mode: tb-lr;
    16     background: #ccc;
    17     display: inline-block;
    18   }
    19   </style>
    20 </head>
    21 <body>
    22   <div class="wrap">
    23       <img  src="./img/a.png" alt="">
    24       <div class="button">转换成黑白图片</div>
    25       <div class="canvas">
    26         <canvas width="300" height="300"></canvas>
    27       </div>
    28   </div>
    29 
    30       
    31   <script>
    32     var btn = document.getElementsByClassName("button")[0];
    33     btn.onclick = function(){
    34       var canvas = document.getElementsByTagName("canvas")[0];
    35       var ctx = canvas.getContext("2d");
    36       var img = document.getElementsByTagName("img")[0];
    37       ctx.drawImage(img,0,0);
    38       var data = ctx.getImageData(0,0,img.width,img.height).data; //获取像素数据信息
    39       console.log(data);
    40       for(var i = 0; i < data.length; i+=4){
    41         var avg = (data[i] + data[i+1] +data[i + 2])/3 ;
    42         data[i] = data[i+1] = data[i+1]= avg; 
    43        
    44       }
    45       
    46       ctx.putImageData(new ImageData(data, img.width,Image.height),0,0);//重绘canvas
    47     }
    48    
    49   </script>
    50 </body>
    51 </html>
  • 相关阅读:
    【codevs1079】回家
    【codevs1245】最小的N个和
    【codevs1231】最优布线问题
    【codevs1078】最小生成树
    【NOIP1999】【codevs1083】Cantor表
    【NOIP2006】【codevs1075】明明的随机数
    【NOIP2001】【codevs1011】数的计算
    【POJ2259】Team Queue(队列,模拟)
    【LOJ119】单源最短路 模板
    Jzoj4900 平方数
  • 原文地址:https://www.cnblogs.com/dangdanghepingping/p/14385686.html
Copyright © 2020-2023  润新知