RazorCameraLibrary 1.0.1

dotnet add package RazorCameraLibrary --version 1.0.1
NuGet\Install-Package RazorCameraLibrary -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RazorCameraLibrary" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RazorCameraLibrary --version 1.0.1
#r "nuget: RazorCameraLibrary, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RazorCameraLibrary as a Cake Addin
#addin nuget:?package=RazorCameraLibrary&version=1.0.1

// Install RazorCameraLibrary as a Cake Tool
#tool nuget:?package=RazorCameraLibrary&version=1.0.1

Razor Camera Library

A Razor Class Library built using the Dynamsoft JavaScript Camera Enhancer SDK, which provides a simple way to integrate camera access into Blazor applications.

Online Demo

https://yushulx.me/Razor-Camera-Library/

Quick Usage

  • Import and initialize the Razor Camera Library.

    @using RazorCameraLibrary
    
    <div id="videoContainer"></div>
    
    @code {
        private CameraJsInterop? cameraJsInterop;
        private CameraEnhancer? cameraEnhancer;
    
        protected override async Task OnInitializedAsync()
        {
            cameraJsInterop = new CameraJsInterop(JSRuntime);
            await cameraJsInterop.LoadJS();
    
            cameraEnhancer = await cameraJsInterop.CreateCameraEnhancer();
            await cameraEnhancer.SetVideoElement("videoContainer");
        }
    }
    
  • Get a list of available cameras.

    List<Camera> cameras = await cameraEnhancer.GetCameras();
    
  • Set the camera resolution.

    await cameraEnhancer.SetResolution(640, 480);
    
  • Open a camera.

    await cameraEnhancer.OpenCamera(cameras[0]);
    
  • Acquire a camera frame for image processing.

    IJSObjectReference canvas = await cameraEnhancer.AcquireCameraFrame();
    
  • Draw shapes on the camera overlay.

    await cameraEnhancer.DrawLine(0, 0, 100, 100);
    await cameraEnhancer.DrawText("Hello World", 0, 0);
    
  • Clear the camera overlay.

    await cameraEnhancer.ClearOverlay();
    

API

Camera Class

Represents a camera device with its device ID and label.

CameraJsInterop Class

  • Task LoadJS(): Loads and initializes the JavaScript module.
  • Task<CameraEnhancer> CreateCameraEnhancer(): Creates a new CameraEnhancer instance.

CameraEnhancer Class

  • Task<List<Camera>> GetCameras(): Gets a list of available cameras.
  • Task SetVideoElement(string elementId): Sets a div element as the video container.
  • Task OpenCamera(Camera camera): Opens a camera.
  • Task CloseCamera(): Closes the current camera.
  • Task SetResolution(int width, int height): Sets the resolution of the camera.
  • Task<IJSObjectReference> AcquireCameraFrame(): Acquires a frame from the camera and returns a JavaScript canvas object reference.
  • Task DrawLine(int x1, int y1, int x2, int y2): Draws a line on the camera overlay.
  • Task DrawText(string text, int x, int y): Draws text on the camera overlay.
  • Task ClearOverlay(): Clears the camera overlay.

Example

Build

cd RazorCameraLibrary
dotnet build --configuration Release
Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.1 222 12/14/2023
1.0.0 86 12/13/2023

- Added overlay drawing API.