Go to file
Marc Rousavy a0590dccb5
feat: Replace Reanimated with RN Worklets (#1468)
* Setup RN Worklets

* Use RN Worklets on iOS

* Fix console

* Add `installFrameProcessorBindings()` function

* Add `FrameProcessorPlugins` proxy (BREAKING CHANGE)

* Clean up docs

* Update FRAME_PROCESSORS.mdx

* Use RN Worklets 0.2.5

* feat: Android build setup

* Rewrite Android Frame Processor Part

* Update CMakeLists.txt

* fix: Add react-native-worklets Gradle dependency

* Update Podfile.lock

* fix build

* gradle:7.4.1

* Init JSI Bindings in method on Android

* Fix Folly flags

* fix: Init `FrameProcessorRuntimeManager` later

* fix: Wrap in `<GestureHandlerRootView>`

* Refactor plugins

* fix: Remove enableFrameProcessors

* Install RN Worklets from current GH master

* Update babel.config.js

* Update CameraViewModule.kt

* Update ImageProxyUtils.java

* feat: Upgrade to Reanimated v3

* fix: Fix crash on Worklet init

* Update RN Worklets to latest master

* fix: Simplify FP Plugins Proxy
2023-02-13 15:22:45 +01:00
.github feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
.vscode VSCode settings 2021-02-20 17:13:02 +01:00
android feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
docs feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
example feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
ios feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
scripts feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
src feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
.eslintrc.js fix: Fix TypeScript relative imports (#358) 2021-08-16 10:45:41 +02:00
.gitignore feat: Add React Native 0.66 support (#490) 2021-10-05 12:22:14 +02:00
app.plugin.js feat: Expo support (#260) 2021-07-07 14:55:25 +02:00
CODE_OF_CONDUCT.md chore: Move to /mrousavy/ (#224) 2021-06-21 22:42:46 +02:00
CONTRIBUTING.md Update CONTRIBUTING.md 2021-10-05 15:01:26 +02:00
LICENSE chore: Move to /mrousavy/ (#224) 2021-06-21 22:42:46 +02:00
package.json feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
README.md Add VisionCamera V3 link to README 2022-12-06 15:45:52 +01:00
tsconfig.json fix: Fix TypeScript relative imports (#358) 2021-08-16 10:45:41 +02:00
VisionCamera.podspec feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
yarn.lock feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00

Vision Camera



📸 The Camera library that sees the vision.
npm i react-native-vision-camera
npx pod-install
Buy Me a Coffee at ko-fi.com



‼️‼️‼️‼️‼️ VisionCamera V3 ‼️‼️‼️‼️‼️

See this discussion for the latest upcoming version of VisionCamera

Documentation

Features

  • Photo, Video and Snapshot capture
  • Customizable devices and multi-cameras (smoothly zoom out to "fish-eye" camera)
  • Customizable FPS
  • Frame Processors (JS worklets to run QR-Code scanning, facial recognition, AI object detection, realtime video chats, ...)
  • Smooth zooming (Reanimated)
  • Fast pause and resume
  • HDR & Night modes

See the example app

Example

function App() {
  const devices = useCameraDevices('wide-angle-camera')
  const device = devices.back

  if (device == null) return <LoadingView />
  return (
    <Camera
      style={StyleSheet.absoluteFill}
      device={device}
      isActive={true}
    />
  )
}

Adopting at scale

This library helped you? Consider sponsoring!

VisionCamera is provided as is, I work on it in my free time.

If you're integrating VisionCamera in a production app, consider funding this project and contact me to receive premium enterprise support, help with issues, prioritize bugfixes, request features, help at integrating VisionCamera and/or Frame Processors, and more.


🚀 Get started by setting up permissions!