Skip to content

Commit 5bf98c5

Browse files
author
Kevin Scott
committed
Add ability to pass an HTMLImageElement
1 parent 6873afa commit 5bf98c5

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ml-classifier",
3-
"version": "0.3.6",
3+
"version": "0.3.7",
44
"description": "A machine learning engine for quickly training image classification models in your browser",
55
"main": "dist/index.js",
66
"typings": "dist/index.d.ts",

src/translateImages.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,29 @@
1-
const translateImages = async (origImages: Array<tf.Tensor3D | HTMLImageElement>) => {
2-
return origImages;
1+
const loadImage = async (src: string) => new Promise<HTMLImageElement>((resolve, reject) => {
2+
const image = new Image();
3+
image.src = src;
4+
image.onload = () => resolve(image);
5+
image.onerror = (err) => reject(err);
6+
});
7+
8+
const translateImages = async (origImages: Array<tf.Tensor3D | HTMLImageElement | string>) => {
9+
const images = [];
10+
11+
for (let i = 0; i < origImages.length; i++) {
12+
let image = origImages[i];
13+
14+
if (typeof image === 'string') {
15+
const loadedImage = await loadImage(image);
16+
image = tf.fromPixels(loadedImage);
17+
} else if (image.src) {
18+
const loadedImage = await loadImage(image.src);
19+
image = tf.fromPixels(loadedImage);
20+
}
21+
// else, it is a tensor
22+
23+
images.push(image);
24+
}
25+
26+
return images;
327
}
428

529
export translateImages;

0 commit comments

Comments
 (0)