如何让IOS

问题描述:

定制的镜头效果,我不是一个iOS开发者,但我的客户要我做一个iPhone应用程序一样 https://itunes.apple.com/us/app/trippy-booth-amazing-filterswarps/id448037560?mt=8 我已经见过像 https://github.com/BradLarson/GPUImage 一些自定义的库,但没有找到任何镜头定制例。 任何形式的建议将是有益如何让IOS

在此先感谢

+0

![示例效果](https://s3.mzstatic.com/r30/Purple/v4/2c/35/d5/2c35d585-e7cd-cd31-3a7b-5dd923e4fe34/screen1136x1136.jpeg) – Taskin

+0

https:// github.com/BradLarson/GPUImage将解决我的问题。 我发现我一直在寻找 – Taskin

您可以通过书面在OpenGL(或金属只适用于iOS)一些自定义着色器做到这一点,那么你可以申请你的shader做这样有趣的东西图片在上面的链接。

我建议你看看如何在iOS中使用OpenGL的框架。 基本上流想: 使用任何框架来捕获(甚至实时)一个图像。 使用一些框架来修改图像。 (这里发生的魔术) 使用另一种东西来呈现图像。

你应该学会如何获取OpenGL上下文,就可以绘制图像,编写自定义着色器,应用着色器,得到输出,为“扭曲的形象。”对于真实而言,最难的部分是如何通过使用公式描述它来在你的头脑中创造这种“效果”。

+0

感谢您的建议,一些相机过滤器,是否有可能不使用OpenGL或一些开源库,这将有助于我实现我的目标 – Taskin

+0

如果你只是想应用一些简单的过滤器和转换来实现效果,使用CoreImage的CIFilter和CIDetector可以做得很好。但是如果你想自己制作效果,即使在CoreImage中,你仍然需要提供一个“内核”,基本上它是一个着色器。 – MatthewLuiHK

这是相当类似Photoshop的网格经线(编辑 - >变换 - >扭曲)。基本上,您将图像视为纹理,然后将其渲染到一个网格(Bezier Patch),该网格是一个已变形为贝塞尔曲线的网格,但您将纹理坐标保留为网格。这具有将图像“拉”到补丁节点的效果。你可以使用OpenGL(GL_PATCHES)来做这件事;我想金属或sceneKit可能也会起作用。

我无法从屏幕截图告诉但它可能是你引用的例子实际上是将自己的网络,基于面部识别。 CoreImage有basic facial recognition给年轻人和眼睛的位置,你可以用它来控制网格中的一些节点。

+0

感谢您回复Josh, 请您给我一步一步的教程或一些框架,我应该开始 – Taskin