哈哈哈哈这题实在是太有意思了,下面的答案八仙过海各显神通,用什么方法实现的都有。
不过这种图片处理+渐变色的场合怎能少得了我大HTML5?而且别人的答案都是要你亲手去一步步处理,咱们这里有个天然的优势,就是做出来之后能在网页上所见即所得。
效果如下:
比如苹果的logo(为了效果明显,我做了一点高斯模糊)
出来的结果就是这样的:
再比如咱们扁平之前的Windows:
当然也不在话下:
这个小DEMO里预置了几个演示,除了上面的,还有喵星人、刘看山、以及我自己的头像……
另外最激动人心的是,它可以加载你本地的图片,把任意一张图转换成这个彩虹马赛克特效。
(最好使用jpg或非透明背景的png,浅底色深图案能达到最佳效果)
其实原理简单得很,会前端编程的一看即知:就是为canvas设置个横向渐变背景色,然后读取原图,获取每个点的灰度值,然后在对应位置绘制圆角矩形,颜色越亮,圆角矩形尺寸越大。
网页是一个内嵌的iframe,右键直接查看源码或者下载到本地慢慢研究都可以。