mirror of
https://github.com/immich-app/immich.git
synced 2026-01-12 13:15:14 -08:00
* Revert "fix(web): justify layout import (#16267) " This reverts commitec58e1065f. * Revert "fix(web): dynamically import wasm module (#16261)" This reverts commit4376fd72b7. * Revert "feat(web): use wasm for justified layout calculation (#15524)" This reverts commit3925445de8. * Revert "fix(web): viewport reactivity, off-screen thumbhashes being rendered (#15435)" This reverts commit52f21fb331.
20 lines
660 B
TypeScript
20 lines
660 B
TypeScript
import { decodeBase64 } from '$lib/utils';
|
|
import { thumbHashToRGBA } from 'thumbhash';
|
|
|
|
/**
|
|
* Renders a thumbnail onto a canvas from a base64 encoded hash.
|
|
* @param canvas
|
|
* @param param1 object containing the base64 encoded hash (base64Thumbhash: yourString)
|
|
*/
|
|
export function thumbhash(canvas: HTMLCanvasElement, { base64ThumbHash }: { base64ThumbHash: string }) {
|
|
const ctx = canvas.getContext('2d');
|
|
if (ctx) {
|
|
const { w, h, rgba } = thumbHashToRGBA(decodeBase64(base64ThumbHash));
|
|
const pixels = ctx.createImageData(w, h);
|
|
canvas.width = w;
|
|
canvas.height = h;
|
|
pixels.data.set(rgba);
|
|
ctx.putImageData(pixels, 0, 0);
|
|
}
|
|
}
|