Skip to content

Commit 401fa7f

Browse files
committed
Send tensor in RGB
1 parent 6227fb4 commit 401fa7f

1 file changed

Lines changed: 3 additions & 49 deletions

File tree

src/hashing.ts

Lines changed: 3 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Readable } from 'stream';
2-
import { createRequire } from 'module';
32
import crypto from 'crypto';
43
import sharp from 'sharp';
54
import {
@@ -10,34 +9,6 @@ import {
109
import brotli from 'brotli';
1110
import { buffer } from 'stream/consumers';
1211

13-
const require_ = createRequire(import.meta.url);
14-
const { cv } = require_('opencv-wasm') as {
15-
cv: {
16-
Mat: new (
17-
rows: number,
18-
cols: number,
19-
type: number,
20-
) => {
21-
data: Uint8Array;
22-
rows: number;
23-
cols: number;
24-
channels(): number;
25-
delete(): void;
26-
};
27-
Size: new (width: number, height: number) => unknown;
28-
CV_8UC3: number;
29-
INTER_LINEAR: number;
30-
resize(
31-
src: unknown,
32-
dst: unknown,
33-
size: unknown,
34-
fx: number,
35-
fy: number,
36-
interpolation: number,
37-
): void;
38-
};
39-
};
40-
4112
/**
4213
* Computes MD5 and SHA1 hashes from a readable stream and resizes any image data.
4314
* @param stream Node.js readable stream (e.g., fs.createReadStream)
@@ -85,29 +56,12 @@ export async function computeHashesFromStream(
8556
if (resize) {
8657
const rawBuffer = await buffer(stream);
8758

88-
const decoded = await sharp(rawBuffer)
59+
data = await sharp(rawBuffer)
60+
.resize(448, 448)
8961
.removeAlpha()
9062
.raw({ depth: 'uchar' })
91-
.toBuffer({ resolveWithObject: true });
92-
93-
const { data: rgbPixels, info } = decoded;
94-
95-
const srcMat = new cv.Mat(info.height, info.width, cv.CV_8UC3);
96-
srcMat.data.set(rgbPixels);
63+
.toBuffer();
9764

98-
const dstMat = new cv.Mat(448, 448, cv.CV_8UC3);
99-
cv.resize(srcMat, dstMat, new cv.Size(448, 448), 0, 0, cv.INTER_LINEAR);
100-
101-
const resizedRgb = Buffer.from(dstMat.data);
102-
srcMat.delete();
103-
dstMat.delete();
104-
105-
data = Buffer.alloc(resizedRgb.length);
106-
for (let i = 0; i < resizedRgb.length; i += 3) {
107-
data[i] = resizedRgb[i + 2]!; // B ← R
108-
data[i + 1] = resizedRgb[i + 1]!; // G ← G
109-
data[i + 2] = resizedRgb[i]!; // R ← B
110-
}
11165
imageFormat = ImageFormat.IMAGE_FORMAT_RAW_UINT8_BGR;
11266
} else {
11367
data = await buffer(stream);

0 commit comments

Comments
 (0)