亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        html5 worker 實例(二) 圖片變換效果

        字號:


            是執(zhí)行下面的例子的時候,要自己引入jquery包,并且在html頁面上的img標簽上放入自己要變換的圖片,具體實現(xiàn)步驟如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
            worker的js代碼img.js
            代碼如下:
            onmessage = function(e) {
            postMessage(filter(e.data))
            };
            function filter(imgd) {
            var pix = imgd.pixels.data;
            var xcord = imgd.x / 1000;
            var ycord = imgd.y / 1000;
            for ( var i = 0, n = pix.length; i < n; i += 4) {
            var grayscale = pix[i] * xcord + pix[i + 1] * .59 + pix[i + 2] * .11;
            pix[i] = grayscale; // red
            pix[i + 1] = grayscale; // green
            pix[i + 2] = grayscale; // blue
            }
            imgd['pixels'].data = pix;
            return imgd;
            }
            html代碼
            代碼如下:
            <!DOCTYPE html>
            <html>
            <head>
            <title>test2.html</title>
            <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
            <meta http-equiv="description" content="this is my page">
            <meta http-equiv="content-type" content="text/html; charset=UTF-8">
            <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
            <script type="text/javascript" src="../js/jquery-1.8.0.min.js"></script>
            </head>
            <body>
            <canvas id="myCanvas" width="640" height="480"></canvas>
            <img src="../image/psu[4].jpg"> //注意,自己在這里插入一張圖片,否則沒用效果
            <script type="text/javascript">
            function process(img,x,y){
            var canvas = document.getElementById("myCanvas");
            var context = canvas.getContext('2d');
            context.drawImage(img, 0, 0);
            var pixels = context.getImageData(0,0,img.width,img.height);
            var worker = new Worker("img.js");
            var obj = {
            pixels: pixels,
            x:x,
            y:y
            }
            worker.postMessage(obj);
            worker.onmessage = function(e) {
            if (typeof e.data === "string") {
            console.log("Worker: " + e.data);
            return;
            }
            var new_pixels = e.data.pixels; // Pixels from worker
            context.putImageData(new_pixels, 0, 0);
            img.src = canvas.toDataURL(); // And then to the img
            }
            }
            </script>
            <script type="text/javascript">
            $(function(){
            $(".onHover").on("mouseover", function(){
            var x =this.width;
            var y = this.height;
            console.log("X: " + x + " Y: " + y);
            process(this, x, y);
            });
            })
            </script>
            </body>
            </html>
            是執(zhí)行上面的例子的時候 ,要自己引入jquery包,并且在html頁面上的img標簽上放入自己要變換的圖片。然后部署到服務器,打開頁面,當鼠標移動到圖片的 上面的時候就會發(fā)生變換,在這里執(zhí)行變換功能的函數(shù)有worker負責,隨意不影響頁面本身的效率,類似于java語言中的多線程。