diff --git a/src/components/card/Metadata.svelte b/src/components/card/Metadata.svelte index faa41dc..862094c 100644 --- a/src/components/card/Metadata.svelte +++ b/src/components/card/Metadata.svelte @@ -9,6 +9,7 @@ const iso = (d: string | Date) => { if(!d) return "" const v = toDate(d); + if(!v) return "" return isNaN(v.getTime()) ? "" : v.toISOString(); }; diff --git a/src/content/photos/picos-de-europa/index.mdx b/src/content/photos/picos-de-europa/index.mdx index 7abeb40..015ad29 100644 --- a/src/content/photos/picos-de-europa/index.mdx +++ b/src/content/photos/picos-de-europa/index.mdx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d30130cb5f2d988b8eb574e5cdbb1f4b45eb90401473fb65b0450d0d97fadab5 -size 3324 +oid sha256:c3dff398e9ccf814326133b6248d5d02b9cec79113d4575851a82bac1182ce7a +size 3543 diff --git a/src/helpers/image.ts b/src/helpers/image.ts index 3d69610..fad82e3 100644 --- a/src/helpers/image.ts +++ b/src/helpers/image.ts @@ -1,6 +1,7 @@ import { rgbaToThumbHash } from "thumbhash"; import ExifReader from "exifreader"; import type { ImageMetadata } from "astro"; +import { readFile } from "node:fs/promises"; import sharp from "sharp"; export async function generateThumbHash( @@ -72,23 +73,26 @@ const allowedExif = [ ]; export async function getExifData(image: ImageMetadata) { - if (image.format === "svg") return undefined; // SVGs don't have EXIF data") + if (image.format === "svg") return undefined; // SVGs don't have EXIF data const imagePath = (image as ImageMetadata & { fsPath: string }).fsPath ?? image.src; if (!imagePath) return undefined; try { - let buffer: ArrayBuffer; + let buffer: ArrayBufferLike; if (imagePath.startsWith("https://") || imagePath.startsWith("http://")) { const res = await fetch(imagePath); buffer = await res.arrayBuffer(); } else { - buffer = await sharp(imagePath).toBuffer() as unknown as ArrayBuffer; + const b = await readFile(imagePath); + buffer = b.buffer; } const tags = await ExifReader.load(buffer, { async: true }); + if (!buffer) return undefined; + const out: Record = {}; let hasExif = false;