javascript - canvas 的getImageData函数得到的图片数据为何与循环打印不一致?
伊谢尔伦
伊谢尔伦 2017-04-11 12:41:17
[JavaScript讨论组]

用photoshop创建了一个10px*5px的图片,背景色设置为rgb(2,8,10),保存为t.png,使用js代码获取图片数据,打印的数据对象与循环遍历的值不同,

js:

> function createGSCanvas(img) {
> 
>     var canvas=document.createElement("canvas");
>     canvas.width=img.width;
>     canvas.height=img.height;
>     var ctx=canvas.getContext("2d");
>     ctx.drawImage(img,0,0);
>     
>     var c = ctx.getImageData(0, 0, img.width, img.height); 
>     
>     console.log(c);
> 
>     for (i=0; i         for (j=0; j             var x = (i*4) * c.width + (j*4);
>             var r = c.data[x]; 
>     console.log(r);
>             var g = c.data[x+1]; 
>     console.log(g);
>             var b = c.data[x+2]; 
>     console.log(b);
>             c.data[x] = c.data[x+1] = c.data[x+2] = (r+g+b)/3;        
>         }
>     }
>     ctx.putImageData(c,0,0,0,0, c.width, c.height);
>     return canvas.toDataURL(); }
> 
> window.onload = function() {
>     createGSCanvas(document.getElementById('avatar')); }

  

html:

截图如下:

请大神帮忙解惑,万分感谢,为何打印整体数据对象 与 循环打印数组中的每个颜色值 不同

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号