首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

canvas 改变图片色彩

2013-07-01 
canvas 改变图片颜色 !DOCTYPE html!--to moving elements in a straight line--htmlheadmeta ch

canvas 改变图片颜色
 

<!DOCTYPE html>
<!--    to moving elements in a straight line   -->
    <html>
        <head>
            <meta charset='utf-8'/>
            <script type="text/javascript"> 
                
                
                window.addEventListener('load',canvasApp, false);
                
                function canvasApp(args) {
                    var canvas = document.getElementById("MyCanvas");
                    var context = canvas.getContext("2d");
                    
                    var logoL = new Image();
                        logoL.src= "../img/csrLeft.png";
                    var widthL = 88;
                    var logoR = new Image();
                        logoR.src = "../img/csrRight.png";
                    var widthR = 286;
                    var height = 31;
                    context.drawImage(logoL,0,0);
                    
                    var dataL = context.getImageData(0,0,widthL,height);
                    
                    for (var i=0; i<dataL.data.length; i+=4 ) {
                        
                        dataL.data[i] = 29;
                        dataL.data[i+1] = 58;


                        dataL.data[i+2] = 87;
                        
                    }
                    context.putImageData(dataL,0,0);
                    
                }
            </script>
    </head>
    <body>
        <div style="position: absolute; top: 50px; left: 50px; ">
            <canvas id="MyCanvas" width="500" height="500">
                Your brower doesn't support canvas
            </canvas>
        </div> 
    </body>
</html> 



firebug提示var dataL = context.getImageData(0,0,widthL,height);这行代码不安全 颜色也没有改变~ 不知道为什么???? Canvas
[解决办法]
 因为本地测试用的图片是文件夹内的,也有可能是一个url,js跨域限制是不能获取非同一域名下的数据的,而本地的位置是没有域名的,url是非同一域名的,所以浏览器都认为你是跨域了,才会报错。
    如果一定要测试这个代码,解决办法也容易,我是直接把文件放到了apache根目录或者iis中,然后localhost访问就OK了。。 

热点排行