[占位符]

建设squarespace图像过滤器

编辑图像编辑器

在2018年底,我们提出要建立我们自己的图像编辑器,以便给我们的客户提供一个直观的基本工具和经验决定。我们发布了一个版本的最低限度的功能设置,快速规划迭代就可以了。我们刚刚发布了第二个版本,它具有新的强大的几个,高品质的调整,包括撤销/重做以及一套定制过滤器都明白无误地那squarespace。这是我们如何建立过滤器。

筛选结果,以构建过滤器

squarespace一贯遵循的设计至上的理念在构建我们的产品。当我开始了,当我们有大约60名员工,并且它现在仍然如此,我们对1000蠕变是真实的。这里的工程师,你必须做出一个恒定的,有意识的努力来维持ESTA设计第一的思想在一些新的工作时。这意味着,有时是通过用户体验的问题,增加新的面板到另一个层次深之前思考。有时它意味着确保我们的客户能够获得一流的设计工具,使最美丽的网站他们可以。这是导致过滤器第二种类型的设计为先的思想,在我们新的图像编辑器。

为了方便画布,绘画和图像处理逻辑,我们决定采用流行 fabricjs库。 fabricjs有一小部分 内置过滤器,但在范围上他们并不普遍关注和视觉质量的限制与图像的结束。在这一点上,我们有来自我们的设计团队十几定制设计的过滤器和没有办法从模具设计到调整代码转换。这是我们必须把我们自己的设计专长,利用为我们的客户和提供一整套的,共有可辨别squarespace在心脏的过滤器。 ,有两个因此不得不重点考虑解决我们的地址:

  1. 网上赚钱靠谱的方法
  2. 网上赚钱靠谱的方法

并且,在一定意义上,有一个第三个考虑:我们没有对球队ADH有史以来建造这样的事情之前。时间研究!

任何有经验的软件工程师可能已经猜到,第一步是在互联网上的集体知识搜索:后来的“如何在JavaScript应用图像过滤器。”经过几次迭代和搜索字词的改进,我们被介绍给查找的概念表。

你看,在在工作台上!

的查找表是,在其最简单的,预先计算的数据的阵列或矩阵可以被缓存和用于通过索引或键来查找答案,而不是计算它们的飞行。此外查找表早于计算机。对于计算器之前查找基10对数表的书籍是必不可少的一应俱全,而且在地方耗时,容易出错的计算进行了使用。事实上,几乎每个人都已经到了现代小学广泛使用的查找表,以了解当他们有自己的时间表。它可能仍然在内存中缓存太....

在图像处理,查找表在整个进度您在某些域逻辑的方式需要明确彩色像素组成。它们可以是一维的(网格)或三维(立方体凡轴红色,绿色和蓝色)。而3D表是勿庸置疑强大的多,它们的有用真正的亮点在与不可预知的色彩空间,如流处理电影,你可能需要根据周围的颜色改变颜色,并且之间的空间色彩,转换凡能力中介插值价值观是至关重要的。对我们而言,能够映射值一到一个具有一维查找表就足够了。

我们的第一次尝试,我们开始有了一个512×512的查找表,它给你输出262,144可能的颜色。很快变得越来越明显,这不是细粒ESTA足以获得令人满意的效果。带有颜色的区域非常的微妙变化被推到可用的最接近的颜色和可见光谱带。

增加到24位色,4096×4096,让我们获得16,777,216种颜色输出:RGB足够精确的图像。因为每个信道,这是(红,绿,蓝)为8位,从而产生224 可能的颜色。这里是我们开始与中性查找表:

它是一个16×16网格,每个正方形在哪里256×256像素。从0到255增加打算从右到每个单个正方形左侧的蓝色值。从0增加到255会从上到下每平方米的绿色价值。从0到255增加网络从左到右和从上到下在每个正方形的,即,左上方已经0网络,右上方具有网络15,右下方255具有网络等

网上赚钱靠谱的方法 四个通道:红,绿,蓝和alpha。我们只关心前三这里,因为我们没有做任何的透明度在我们的过滤器当前的批处理操作。随着我们的中立查找表,我们现在已经从[0,0,0](黑色)的RGB值的每一个可能的组合数学指数为[255,255,255(白色)。

的图像数据被从画布返回一个巨大uint8clampedarray,与对每一个像素数据的四个点。它看起来像这样:

我们现在可以确定像素RGB使用这些值将下降在我们的中性查找表如下所示:

其中R,G和B是你要找的原始图像中的像素的RGB值。

我们看一下X的第一个发现的广场,它在坐标 (R%16),乘以256,因为有256个像素中的每个正方形,则添加值的原始图像的蓝色。得到y坐标,我们得到的一行 math.floor(R / 16),然后按照从X相同的数学坐标。索引最终通过乘以在y由4096(表中的宽度,即,像素的数量和/行)坐标,加入x坐标,和由4结果乘以以考虑这样的事实计算出,而我们只有〜1600万个像素在我们的桌子,我们对每个像素数据的四个通道。

这是现在我们的每一个原始图像中的颜色的参考点。现在我们只需要新的颜色,在这一点上应用筛选后。

这里的ESTA如何使我们接近我们的设计团队化妆肯定能在自己的工具和手完全工作过的东西,我们可以使用。他们会创建调整图层预期的效果,然后与原来提供给我们的图像,图像操纵,我们需要匹配,并且他们使用调整设置。

从现有的图像时,我们所要做的就是采取对我们的中立的查找表,在相同的图像打开编辑软件,并应用我们从设计团队得到了完全相同的调整图层。

From here, it’s as simple as finding the pixel in this table at the index we found previously, getting its RGB values, and writing the RGB values back to the original image data. That data is then put into the canvas in the Image Editor. Here’s the same image with the Bright & Crisp filter applied next to the reference image from the design team:

它等同于设计师的图像编辑工具创建的图像。

下一步是什么

我们已经爬起来在九月,所以我们需要这一切做补充一个完全新的过滤器是增加一个查找表的模块,更新该驱动器的UI,构建和发布一些枚举。我们还发现ESTA该解决方案可以与图像编辑器的其他部分帮助当多数民众赞成所有需要的是一个一对一更换颜色。例如,现在我们对比滑块通过在两端两个查找表,让设计策划的结果上,而在此之前,我们不得不依靠面料的巧妙少驱动选项。我们非常高兴能够继续我们的图像编辑器改进,使用查找表作为我们带的另一种工具。

螺母和螺栓和Polina希拉尔特

3种良好的技术债务