Files
memorium/lib/thumbhash.ts
2026-01-10 15:06:43 +01:00

23 lines
605 B
TypeScript

import * as thumbhash from "thumbhash";
export function generateThumbhash(
buffer: ArrayLike<number>,
w: number,
h: number,
) {
const hash = thumbhash.rgbaToThumbHash(w, h, buffer);
return [hash, thumbhash.thumbHashToAverageRGBA(hash)] as const;
}
export function generateDataURL(hash: string) {
const decodedString = atob(hash);
// Create Uint8Array from decoded string
const uint8Array = new Uint8Array(decodedString.length);
for (let i = 0; i < decodedString.length; i++) {
uint8Array[i] = decodedString.charCodeAt(i);
}
return thumbhash.thumbHashToDataURL(uint8Array);
}