如何调整 GPUImage2 以仅使用几个过滤器?

How can I tailer GPUImage2 to use only a few filters?

我只想在我的 swift 项目中使用 GPUImage2 中的几个滤镜,我如何才能将 GPUImage2 定制为我需要的几个滤镜?

我不熟悉代码库,也没有看到任何相关文档。

P.S。我主要关心的是应用程序大小,如果包含所有内容不会使应用程序大小膨胀,我可以将 GPUImage 作为一个整体导入。

对于希望通过仅引入所需操作来缩小二进制文件大小的人来说,这是一个常见问题,所以我会看看是否可以提供规范参考。

最简单的方法是从您的项目中删除对 GPUImage 的依赖,而是手动将构建框架核心组件所需的文件复制到您的项目中。与平台无关的核心文件是:

  • CameraConversion.swift
  • SerialDispatch.swift
  • BasicOperation.swift
  • Color.swift
  • FillMode.swift
  • Matrix.swift
  • OpenGLContext_Shared.swift
  • Timestamp.swift
  • OpenGLRendering.swift
  • ShaderProgram.swift
  • ShaderUniformSettings.swift
  • Framebuffer.swift
  • FramebufferCache.swift
  • Position.swift
  • Size.swift
  • Pipeline.swift
  • ImageOrientation.swift

以下文件也需要过来,但它们有平台特定的(Mac、iOS或Linux)变体,所以你要么需要选择针对您的特定平台目标或有选择地将它们包含在您的各种目标中的每一个:

  • PictureInput.swift
  • PictureOutput.swift
  • MovieInput.swift
  • MovieOutput.swift
  • Camera.swift
  • OpenGLContext.swift
  • RenderView.swift

使用这些文件,您应该能够构建一个项目,该项目可以以与 GPUImage 相同的方式执行图像处理,但没有长长的操作列表。如果您有一个或两个操作要带过来,您可以有选择地将这些文件复制到您的项目中。如果它们是从另一个操作子类化的,您可能需要复制一个或两个依赖项。