【问题标题】:Is there way to convert mask image into UIBezierPath in iOS有没有办法在 iOS 中将遮罩图像转换为 UIBezierPath
【发布时间】:2017-08-11 00:39:46
【问题描述】:

我想在图像的某些部分上显示动画,例如着色应用程序。我通过遮罩实现了这一点,但这对性能很重要。

我正在寻找一种将遮罩转换为 UIBezierPath 的方法,这样我就可以每次都在 UIView 上的图层上添加动画,而不是每次都在 UIView 对象上添加动画。

我正在尝试遵循完全相同的方法 MagicWand for Mac 但它有很多可可类。任何人都可以建议我根据 iOS 类或任何教程将 ma​​sk 或 image 转换为 UIBezierPath 对象以找到线索的解决方案?

提前致谢。

【问题讨论】:

  • 面具是什么意思?你有一个捆绑在你的应用程序中的 PNG?
  • 根据 Apple 文档,蒙版是灰度的。但是如果有任何解决方案,我可以选择使用 PNG 作为掩码?
  • 如果您在发货时将这些图像捆绑在您的应用程序中,那么没有理由在手机上进行复杂的计算。您可以简单地使用 Photoshop 的魔杖并导出路径。但是,如果这些掩码是由用户创建的,则您无法执行此简单的解决方案。
  • 同意@Jon Rose。如果您使用捆绑掩码 - 将其转换为 svg 并使用它来计算贝塞尔路径。如果没有 - 请您的后端向您发送 svg 掩码。
  • 这种效果你要加吗? stackoverflow.com/questions/29860055/…

标签: ios path gradient mask uibezierpath


【解决方案1】:

如果您同意将 SVG 用于图像,请查看 PocketSVG。您将获得给定 svg 的贝塞尔路径数组。您可以将这些路径中的每一个添加为单独的 CAShapeLayer 对象,并使用 CABasicAnimation 将任何动画添加到它们的路径和填充颜色。

希望它能回答你的问题。

【讨论】:

  • 感谢您的回答。有没有办法可以对 PNG/JPG 使用相同的技术。我现在不能使用 SVG,因为我们有相同的 iOS 和 Android 后端。
【解决方案2】:

Code.org 有一个叫做应用实验室的东西,你可以使用颜色和设计来编辑代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2021-04-11
    • 1970-01-01
    • 2019-11-10
    相关资源
    最近更新 更多