Skip to content

Commit b1987fd

Browse files
Optimize: swap RGB to BGR channels in-place to avoid extra buffer allocation
1 parent 6227fb4 commit b1987fd

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

src/hashing.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,15 @@ export async function computeHashesFromStream(
9898
const dstMat = new cv.Mat(448, 448, cv.CV_8UC3);
9999
cv.resize(srcMat, dstMat, new cv.Size(448, 448), 0, 0, cv.INTER_LINEAR);
100100

101-
const resizedRgb = Buffer.from(dstMat.data);
101+
data = Buffer.from(dstMat.data);
102102
srcMat.delete();
103103
dstMat.delete();
104104

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
105+
// Swap R and B channels in-place (RGB → BGR)
106+
for (let i = 0; i < data.length; i += 3) {
107+
const r = data[i]!;
108+
data[i] = data[i + 2]!; // R position gets B
109+
data[i + 2] = r; // B position gets R
110110
}
111111
imageFormat = ImageFormat.IMAGE_FORMAT_RAW_UINT8_BGR;
112112
} else {

0 commit comments

Comments
 (0)