我目前正在开发一款基于React-Native的图像处理移动应用。然而,我在React-Native官方网站上找不到有关图像裁剪、缩放、平移和保存功能的相关文档(这些功能在HTML5画布元素中可以轻松实现)。
我也进行了一些谷歌搜索,但只找到一个“未维护”的react-native-canvas(https://github.com/lwansbrough/react-native-canvas)。在React Native中是否有类似“canvas”的东西呢?
我目前正在开发一款基于React-Native的图像处理移动应用。然而,我在React-Native官方网站上找不到有关图像裁剪、缩放、平移和保存功能的相关文档(这些功能在HTML5画布元素中可以轻松实现)。
我也进行了一些谷歌搜索,但只找到一个“未维护”的react-native-canvas(https://github.com/lwansbrough/react-native-canvas)。在React Native中是否有类似“canvas”的东西呢?
我是react-native-canvas
的维护者。自从这个问题被问出来,这个库发生了很多变化:它是React Native最完整和兼容的画布组件,具有高级功能,如Path2D
和渐变效果,并且与默认的Web视图画布不同,它可以以高DPI渲染。
该组件与其他React Native组件相比较慢,因为它在后台使用WebView
进行渲染。但通信已经优化,并且在许多方面类似于React Native渲染本地视图的方式。这种权衡是该库不需要任何本地安装,仅依赖于React Native JavaScript运行时和本地的WebView
。
虽然有一个想法可以在React Native JavaScript运行时中渲染画布,但是在JavaScript运行时中没有人制作过完整的无DOM画布,因此实现需要相当大的努力。
根据我们在K Health的经验,可以以足够快的速度渲染出响应用户交互所需的图形,但无法达到全动画的速度。该组件在我们的应用程序中得到了广泛使用,拥有数千名用户。
react-native-canvas
的贡献者和用户,包括我自己,非常愿意提供帮助,如果您有任何问题,请随时提出问题或发送电子邮件。
canvas.height = 400; canvas.width = 600;
- Iddan Aaronsohn好的,经过两年的时间,现在有一个新的选择:
https://alibaba.github.io/GCanvas/
这个“GCanvas”是为本地环境设计的,可以运行canvas2d和WebGL API。
请参见:
https://alibaba.github.io/GCanvas/docs/Integrate%20GCanvas%20on%20ReactNative.html
React Native SVG - 感觉很像我们都熟悉的SVG Web组件。您可以使用此库执行许多操作,甚至包括动画。
ART(React Native版本在此处找到)- React ART库的“React Native”版本,而React ART库则是Art库的扩展在此处找到。它与React Native一起提供,但我认为它尚未集成到默认设置中,因此它位于您的node_modules文件夹中,并且需要导入到XCode中(该讨论在此处找到)。我通常将项目文件从node_modules文件夹中拖出来(位于node_modules/react-native/Libraries/ART/Art.xcodeproj
),然后将其放入React Native XCode项目导航器中的libraries文件夹中。如果要求复制资源,请点击是。之后,进入您的项目设置文件->常规->链接的框架和库,然后按加号图标。搜索ART并将其添加为依赖项。
注意:如果您刚开始使用react-native,并遵循最近几个月的官方“入门”指南,则默认指南是使用“expo”。而React Native SVG默认包含在expo构建中。因此,使用它会更加容易。
react-native-canvas
似乎正在得到维护 -- 2017 年发布了新版本并最近发布了一个错误修复。然而,根据我的经验,它非常缓慢,因此可能仅适用于最简单的应用程序。 - Jules