JS技术文

canvas的一些api

2016-04-06  本文已影响685人  Miss____Du

最近要准备一次组内分享关于canvas 的一个神奇的应用。

其实我对于canvas学过很多次,但是因为平常不咋用,就总是忘记。

估计这次分享后 还是忘记,,oudoukaji


分享内容来自这里,前端大全微信公众号的一篇文章。讲的是 隐写术,看上去是不是逼格很高。。

canvas 我没有用它写过动画,我日常切图工作的动画难度基本上css3那些就可以搞定。但是他有一个很厉害的地方就是可以获得图片每个像素的信息。就像我觉得svg很牛逼的地方就是 矢量图 不失真。

文章写得很仔细 我就不再写了

但是我想复习一下这些api。


我们在写css样式时 ,如果想实现透明效果,可以用opacity:0.5;但是也会这样 rgba(155,155,155,0.5);这四个值分别代表 红绿蓝及透明度。
通过canvas 可以帮助我们 巧妙地操作这些像素信息。

看一眼打印的图像信息。


Paste_Image.png

每四个一组,值得注意的是,我们知道rgba里面最后一个值只要大于1 都是不进行透明度设置的,这里如果默认为255,表示不透明。1表示完全透明,中间为不同程度的透明。其余三个为rgb。

对于文章一开头 举的例子,解密后是一张图片的。估计需要更复杂的算法。

【附加】
image.src = canvas.toDataURL("image/png");
注意:canvas为画布对象,而不是canvas上下文。


Paste_Image.png

支持两个参数 ,第一个是转化类型,第二个是压缩规模。
ps:canvas压缩不支持png压缩,如果要对png图片进行压缩需要先toDataURL为jpeg格式,注意的是 绘制画布之前 需要为画布铺上一层底色。否则png透明区域就为黑色啦。

最后将image,apend到dom树中就好了。

上一篇 下一篇

猜你喜欢

热点阅读