相当于React Native中的canvas元素

问题描述 投票:0回答:4

我目前正在开发一个基于React Native的图像处理移动应用程序。不过我在React Native官网上找不到关于图像裁剪、缩放、平移、保存功能(可以通过HTML5 canvas元素轻松实现)的相关文档。

我也做了一些谷歌搜索,但只找到了一个“未维护的”react-native-canvas(https://github.com/iddan/react-native-canvas)。 React Native 中是否有与 canvas 元素等效的元素?

canvas react-native
4个回答
38
投票

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
的贡献者和用户,包括我自己,都非常愿意提供帮助,如果您有任何疑问,可以随时提出问题或发送电子邮件。


13
投票

好了,两年后,你又有了新的选择:

https://alibaba.github.io/GCanvas/

此“GCanvas”专为运行 canvas2d 和 WebGL API 的本机环境而设计。

参见

https://alibaba.github.io/GCanvas/docs/Integrate%20GCanvas%20on%20ReactNative.html


6
投票

有一些选项“相似”但不完全相同。我的建议是...

注意: 如果您最近几个月才按照官方“入门”指南开始使用react-native,则默认指南是使用“expo”。 React Native SVG 默认包含在 expo 版本中。所以使用它会容易得多。


3
投票
由于阿里巴巴 GCanvas

壮举:删除 weex 桥和反应式桥并且其最终版本打破了 Android 上的编译,因此出现了 @flyskywhy/react-native-gcanvas npm 包。

经过几个月的努力,

@flyskywhy/react-native-gcanvas在Android和iOS上运行良好,修复了几个bug并添加了Changelog.md

中描述的
feat: support drawImage() from require('some.png') on Android, iOS and Web,并使用README中详细的Example AsUsage进行了重构。医学博士。

有了

性能测试结果,以及方便的类似浏览器的canvas API以及易于移植的示例<canvas/>

react-native-articles-bg可以在Android、iOS和Web上运行,@flyskywhy/react-native-gcanvas
是最好的选择现在:P

© www.soinside.com 2019 - 2024. All rights reserved.