canvas教程

使用Canvas对图像进行处理

字号+ 作者:H5之家 来源:H5之家 2017-05-29 15:00 我要评论( )

今晚本来想发「hybrid系列的jssdk文章」,但是被耽搁了,只写了一半,还没有完成。昨天朋友问js处理图片的问题,想起之前写过一篇canvas处理图片的文章,于是整

> 网页设计 > HTML5 >

使用Canvas对图像进行处理 2017-05-22 10:16 出处:清屏网 人气: 

今晚本来想发「hybrid系列的jssdk文章」,但是被耽搁了,只写了一半,还没有完成。昨天朋友问js处理图片的问题,想起之前写过一篇canvas处理图片的文章,于是整理发了出来。下周文章预告:「hybrid系列的jssdk文章」

html5 canvas图像转换成数组

html5的canvas可以进行图片处理,图片是由像素组成的。我们知道canvas有方法 getImageData ,返回的对象中可以取出,image的data 数组(类似数组的Type Array类型数组, Uint8ClampedArray )。

假设canvas宽高是500*400,那么应该有200000个像素点,而通过 获取的data数组的  length 是800000。

我们还知道rgba表示颜色的方法:

  • r=red,0~255

  • g=green,0~255

  • b=blue,0~255

  • a=alpha,0~100

  • 即红绿蓝三原色和透明值

    所以这个data数组是每四个数组值代表一个像素点。这样一来,一个图像就转化成了数据表示的数组。如下面的代码:

    这里需要注意,图片src符合同源策略,即不可以跨域请求。

    图像数组的遍历

    如上面的代码,我们可以看到数组data就是图片转换成的数组,那么遍历这个数组就可以取得图片的像素点内容:

    图片颜色反转

    颜色反转的算法就是三原色求反,即 255-原色 。所以有了下面的方法:

    颜色一些算法 去色

    把图片变成黑白图,只要把每个像素的R、G、B设为亮度(Y)的值就行了。

    关于R、G、B、Y的关系可以看到这里看看,这里只要记住这条公式: ,使用位:  ,速度会快

    反相(反转)

    就是将一个颜色换成它的补色。

    补色就是用255(8位通道模式下,255即2的8次方,16位要用65535去减,即2的16次方)减去它本身得到的值: 。

    其他算法需要基色和混合色配合可以参考:

    分享给小伙伴们:

    本文标签: Canvas/">Canvas

    相关文章

    发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

  • 本类最热新闻

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • JavaScript通过Html5 Canvas进行图像处理的方法

      JavaScript通过Html5 Canvas进行图像处理的方法

      2017-05-29 08:05

    • canvas游戏开发学习之七:变形

      canvas游戏开发学习之七:变形

      2017-05-29 08:00

    • 图像与边框在地图叠加使用android

      图像与边框在地图叠加使用android

      2017-05-28 16:00

    • canvas案例

      canvas案例

      2017-05-28 15:04

    网友点评
    a