feat: add exif data to image tags
Some checks failed
Deploy to SFTP Server / build (push) Failing after 2m10s

This commit is contained in:
2024-06-21 16:22:49 +02:00
parent e5726437ed
commit f55ae8a267
2 changed files with 4 additions and 19 deletions

View File

@ -1,22 +1,12 @@
let loadingSharp = false;
import { rgbaToThumbHash } from "thumbhash";
import ExifReader from 'exifreader';
import type { ImageMetadata } from "astro";
let s: typeof import("sharp") | undefined;
async function getSharp(): Promise<typeof import("sharp") | undefined> {
if (s) return s;
s = (await import("sharp")).default;
return s;
if (!loadingSharp) {
loadingSharp = true;
setTimeout(async () => {
s = (await import("sharp")).default;
}, 1000);
return;
}
}
export async function generateThumbHash(image: { width: number, height: number }) {
@ -54,10 +44,10 @@ const allowedExif = [
"IsoSpeedRatings",
];
export async function getExifData(image: { fsPath: string }) {
export async function getExifData(image: ImageMetadata) {
const sharp = await getSharp();
if (!sharp) return;
const tags = await ExifReader.load(image.fsPath, { async: true });
const tags = await ExifReader.load((image as ImageMetadata & { fsPath: string }).fsPath, { async: true });
const out: Record<string, any> = {};
let hasExif = false;