一个基于浏览器Rendering Tree的正文查找算法雏形

受到HTML5标准下Web页面复杂化和前端领域SPA再次流行的影响, 常见的基于标签节点或行块分布的正文提取算法在部分场景下已经显得有些无力. 由于一些原因, 最近我开始编写自己的正文提取算法, 本文便是这个"算法"的雏形之一. 受惠于云计算的大规模推广带来的私有云的流行, 以及PhantomJS, Nightmare等Headless browser的不断完善, 我认为当下便是新一代的基于浏览器渲染引擎的个人信息索引辅助工具走上舞台的时候. 于是我重新拾起了过去算法有意忽略(因为难以在服务器端实现)的Node尺寸部分来查找正文, 基本脱离了原有算法依赖文本的思路, 所以与 »


Python lambda匿名递归

Python的lambda表达式构成的匿名函数只能有一条表达式,而且不能引用自身. 想要在lambda表达式中实现匿名递归就需要在表达式中创造一条新的lambda表达式以实现递归,所以我们需要两条lambda表达式. 一个简单的字典递归穷举算法: def func(str,len): if len==1: return [a for a in str] else: return [a+b for a in str for b in func(str,len-1)] func('123',3) #['111', '112', '113', '121', '122', ' »


HTML5 ImageData逆向求坐标公式

HTML5中的ImageData存储的是图片的RGBA数据,通过索引(Index)可以得到每个像素的RGBA信息. 我们可以用x,y坐标计算出索引的值: i=y_width_4+x*4 但是当我们只知道index的值时,计算出x,y坐标就不是那么容易了. 经过一番推导,得出换算公式如下: t=i%(4*width) x=(t-t%4)/4 y=((i+(4-i%4))/4-x)/width; 关于y的值还有另外一种不依赖x值的求法: y=Math.floor(i/(4*width)); »

BlackGlory on 算法

RGB颜色插值渐变原理及算法

RGB颜色变换的原理就是线性插值. 例如将颜色RGB(0,0,0)变换为RGB(255,255,255),其中要输出100次结果,则增加量就是(255-0)/100,将RGB分开计算也是一样. 同理,RGB(100,200,150)变换为RGB(255,0,255),则增加量的计算如下: R=(255-100)/100=1.55 G=(0-200)/100=-2 B=(255-150)/100=1.05 这100个片段是有关增加量的递归结果,将片段连续播放,就形成了动画. 下面是一个用HTML5+JavaScript实现的RGB颜色插值渐变动画. 在线DEMO(位于Google Drive, »

BlackGlory on 算法