Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

equivalent of "canvas" in React Native

I am currently working on an image processing mobile App based on React-Native. However, I can't find any related documents about the image crop, zoom, pan, and save functions (which can be easily achieved by the HTML5 canvas element) on the React-Native official site.

I also do some google searches, but only find an "unmaintained" react-native-canvas (https://github.com/lwansbrough/react-native-canvas). Is there any equivalent of the "canvas" in React Native?

like image 705
user6318446 Avatar asked Oct 11 '16 08:10

user6318446


People also ask

Does react native have canvas?

Introduction. If you need to create advanced graphics in your React Native application, it's possible to use HTML's canvas element within your app by using the react-native-canvas package.

Does React use canvas?

react-canvas is a completely different react plugin. It allows you to draw DOM-like objects (images, texts) on canvas element in very performant way. It is NOT about drawing graphics, but react-konva is exactly for drawing complex graphics on <canvas> element from React.

What is React-konva?

react-konva is a JavaScript library for drawing complex canvas graphics using React. It provides declarative and reactive bindings to the Konva Framework. Github Repo. It is an attempt to make React work with the HTML5 canvas library.

How do you draw a horizontal line in react native?

To create a horizontal line in React, you can add an hr element to the React component. The object style has the color, background-color and height . The color will give the line a solid color and the background-color for other properties.


1 Answers

react-native-canvas maintainer here. Since this question was asked a lot has changed in the library: it's the most complete and compatible canvas component for React Native featuring advanced features like Path2D and gradients, and unlike the default web view canvas it renders in high DPI.

The component is slower compared to other React Native components because behind the scenes it uses a WebView to render. The communication with it is optimised though and in many ways resemble the way React Native renders native views. The trade-off is the library doesn't require any native installation and relies only on the React Native JavaScript runtime and the native WebView

There was an idea to render the canvas in the React Native JavaScript runtime though no-one has made a feature complete no-DOM canvas on a JavaScript runtime before so it will take a decent amount of effort to implement.

From our experience at K Health it's possible to render fast enough graphics for responsive user interaction but not fast enough for full animation. The component is used in our app which has thousands of users.

The contributors and users of react-native-canvas, including myself, are very willing to help and if you have any question you can feel free to open an issue or send an email.

like image 89
Iddan Aaronsohn Avatar answered Sep 29 '22 10:09

Iddan Aaronsohn