@johann01/react-native-mlkit-core v0.7.9
@infinitered/react-native-mlkit-core
Description
This is a shared library for RNMLKit that contains helper functions and shared code for various packages. It offers some helpful methods that are used by many apps on the React Native (JS) side and includes functionality to work with images and bounding boxes.
Installation
Use the following command to install the package:
npm install @infinitered/react-native-mlkit-coreUsage
RNMLKitImage
Swift
Use this class in Swift to create and manage images with MLKitVision. It provides utility methods for loading images and managing their vision representations.
import RNMLKitCore
let image = RNMLKitImage(imagePath: imagePath)
// ...imagePath- should be the localUri of the image to process. i.e.Asset.localUrifrom an Expo Asset orImage.urifrom an ImagePickerAsset.
Kotlin
Use this class in Kotlin to create and manage images with MLKitVision. It provides utility methods for loading images and managing their vision representations.
import com.infinitered.reactnativemlkitcore.RNMLKitImage
val imageUri = Uri.parse(imagePath)
var image:InputImage = RNMLKitImage(imagePath, appContext.reactContext!!).image
// ...imagePathis the localUri of the image to process.Asset.localUrifrom an Expo Asset orImage.urifrom an Expo ImagePickerAsset.appContextis the AppContext from your expo module -- it's accessible as a property on the Module class.
React Components
BoundingBoxView
Renders a bounding box based on the specified dimensions and scale.
import { BoundingBoxView } from "@infinitered/react-native-mlkit-core";
// ...
<BoundingBoxView box={box} scale={scale} />;boxis the bounding box to render of typeBoundingBox
/**
* Represents a bounding box with origin, size, color, label, and width properties.
*/
export interface BoundingBox {
origin: { x: number; y: number };
size: { x: number; y: number };
color?: string;
label?: string;
width?: number;
}ImageWithBoundingBoxes
Renders an image with bounding boxes drawn over specified regions.
import { ImageWithBoundingBoxes } from "@infinitered/react-native-mlkit-core";
// ...
<ImageWithBoundingBoxes image={image} boundingBoxes={boundingBoxes} />;boundingBoxesis an array ofBoundingBoxobjects to render over the image.imageis the image to render. Accepts anImagefromexpo-image
Hooks
Several hooks are included to assist with layout and scaling:
useBoundingBoxStyle: Calculates the style object for a bounding box.useImageScale: Calculates the image scale based on the provided parameters.useLayout: Handles layout change events.