mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
26 lines
696 B
TypeScript
26 lines
696 B
TypeScript
![]() |
import { decode } from 'blurhash';
|
||
|
import { expose } from 'comlink';
|
||
|
|
||
|
/**
|
||
|
* Decodes blurhash outside the main thread, in a web worker
|
||
|
*
|
||
|
* @param {string} hash - Hash to decode.
|
||
|
* @param {number} width - Width of the decoded pixel array
|
||
|
* @param {number} height - Height of the decoded pixel array.
|
||
|
* @param {number} punch - Contrast of the decoded pixels
|
||
|
* @returns {Uint8ClampedArray} - Returns the decoded pixels in the proxied response by Comlink
|
||
|
*/
|
||
|
function getPixels({
|
||
|
hash,
|
||
|
width,
|
||
|
height
|
||
|
}): Uint8ClampedArray {
|
||
|
try {
|
||
|
return decode(hash, width, height);
|
||
|
} catch {
|
||
|
throw new TypeError(`Blurhash ${hash} is not valid`);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
expose(getPixels);
|