程序媛基地Web前端之路@IT·互联网

两分钟去支付宝AR黑线(手把手教你)

2016-12-27  本文已影响13193人  会会会会

最近比较火的支付宝AR实景红包,感觉大玩起来还不错,就是有点耗电。

当然,我也是绞尽乳汁去想怎么搞个黑科技,把黑线给去掉,骗过支付宝粑粑,领取红包。经过半天的事件,终于有了初步成果,现在就分享给大家吧!

主流去黑线算法——等分互补法

各种百度一番,发现现在主流的去黑线的方法就是,等分互补法(这是我寄几总结的)

来看看最简单的ps方法吧:PS处理方法:PS打开图片,Ctrl+J新建图层,设置新图层透明度50%,上下挪动去除黑线。

图一

大概思想就是如图一,用①和②错位互补去黑线,好了来看看最后结果图吧

两分钟去支付宝AR黑线(手把手教你)

问题来了

这个方法对等距离黑线来说还是很有用的,但是这种效果看起来却不是很好,是因为黑线不等距,而且①只是透明度50%,也就是说还有50%的黑线是在上面的,所以现在我们要解决的问题又两点:

1.解决黑线不等分;

2.扣掉黑线(不是统一设成50%的透明度)


前端技术去黑线

因为妹子是码砖的,对ps技术还不是熟练,打算用前端技术来实现在线去黑线(html+css+js)就这么简单粗暴的方法,然后挂在服务器上面,就可以实现一个在线去黑线的web网页,是不是听起来就很酷炫,let's start it!

核心算法

我自己的核心算法当然是基于上面的等分互补法,用前端技术来搞的;

第一步

背景图:当然是原图,没有任何透明度的支付宝红包原截屏图

作用:当然是用来被遮黑线的图;

第二步

条形等距缝隙条组:我这里是将需要去条纹的正方形区域高度等分成60份,分成3组;一组:3的倍数;二组:3余一;三组:三余二;

作用:通过调整每组的相对原图的上下位置达到去黑线效果;

第三步

都在第二步里面说了,当然是移动每组的相对高度;

前端代码实现

我这里总共所有的代码都只有一两百行代码,主要用的是CSS的“background-image”属性,想必懂前端的都不会陌生吧,我这里主要用的background-position来取每个条形的位置,高度当然是总高度的1/60,宽度就是原宽度,好吧,我们来看代码吧

css

css样式很简单,就一个背景图,条纹在上面局对定位;

两分钟去支付宝AR黑线(手把手教你)

html

html代码也很简单,一个原图,几个按钮,条纹是通过js添加上去的

两分钟去支付宝AR黑线(手把手教你)

javascript

javascript也很简单,就两部分:

一部:分初始化条纹,

两分钟去支付宝AR黑线(手把手教你)

第二部分:上下移动指定组的条纹,显示隐藏白条

两分钟去支付宝AR黑线(手把手教你)

来看结果吧!

before

两分钟去支付宝AR黑线(手把手教你)

after

两分钟去支付宝AR黑线(手把手教你)

好吧,不得不承认,这是次失败的结果!哈哈哈哈(默哀两分钟)

总结

e,总的来说去黑线还存在很大的难度的,就如我上文所说的,主要还是黑线不等距,而且尽量用黑线附近的条纹去填充黑线,还原度高一点,如果用微积分的思想去想,去黑线理论上还是可以实现,基于妹子技术有限,给大家提供一个思路,也希望大家也可以集思广益,也不是非要去抢几毛钱的红包(据说每天只能抢10次),但是对我们来说,我想,最后收获的不仅仅是几毛钱的红包吧!


这是我感觉做的比较好的在线去黑线一卷照片 - 支付宝AR红包图片处理

上一篇下一篇

猜你喜欢

热点阅读