Convert a Base64 string to a tensor object in Node.js using pure JavaScript.
npm install base64-coverterThis package enables the conversion of Base64-encoded images to tensor objects using pure JavaScript, compatible with TensorFlow.js.
Install the package using npm:
``bash`
npm install base64-to-tensor --save
Ensure @tensorflow/tfjs-core is installed alongside a valid TensorFlow backend. Choose between the synchronous package jpeg-js for full blocking sync or the asynchronous package sharp for non-blocking async operations:
`shFor synchronous operations:
npm install @tensorflow/tfjs-core jpeg-js
Usage
Refer to the convert.test.ts file for example usage. Below are snippets demonstrating both synchronous and asynchronous conversions:
`typescript
import { convert, convertAsync } from "base64-to-tensor";
import { setBackend } from "@tensorflow/tfjs-core";
import "@tensorflow/tfjs-backend-wasm";await setBackend("wasm");
// Synchronous conversion (jpeg-js)
const tensorSync = convert(mybase64); // Ensure mybase64 is a valid JPEG
// Asynchronous conversion (sharp)
const tensorAsync = await convertAsync(mybase64); // Enhanced performance
// Example tensor output
{
kept: false,
isDisposedInternal: false,
shape: [189, 300, 3],
dtype: "int32",
size: 170100,
strides: [900, 3],
dataId: { id: 1 },
id: 1,
rankType: "3",
}
`Benefits
Using pure JavaScript for image conversion to tensors offers several advantages:
1. Reduced Size and Portability: Eliminates the need for
cairo` or other native image development converters.Performance benchmarks conducted on a Mac M1 (64GB RAM):
| Test Case | Characters | Size | Synchronous | Asynchronous |
|---|---|---|---|---|
| JPEG | 26,791 | 26.16 KB | 100 ms | 50 ms |