fix(raw): fix RAW color matrix calculation, enable highlight recovery mode, and add dedicated tiffThumbnail decoder

This commit is contained in:
2026-10-05 16:03:41 +07:00
parent dbfd459266
commit d01c64736b
3 changed files with 142 additions and 15 deletions
+3 -2
View File
@@ -892,10 +892,11 @@ export async function scanFolder(
return;
}
const raw = isRawName(file.name);
const isTiff = /\.(tiff?)$/i.test(file.name);
const RAW_HEADER_BYTES = 4 * 1024 * 1024;
const sliceBuffer = await file.slice(0, raw ? RAW_HEADER_BYTES : HEAD_BYTES).arrayBuffer();
const sliceBuffer = await file.slice(0, (raw || isTiff) ? (isTiff ? Math.min(file.size, 16 * 1024 * 1024) : RAW_HEADER_BYTES) : HEAD_BYTES).arrayBuffer();
const bytes = new Uint8Array(sliceBuffer);
const preview = raw ? await rawThumbnail(bytes) : null;
const preview = (raw || isTiff) ? await rawThumbnail(bytes, file.name) : null;
const src = preview ? new Blob([preview as BlobPart], { type: 'image/jpeg' }) : raw ? null : file;
const size = preview ? jpegSize(preview) : raw ? null : jpegSize(bytes);
const thumb = src ? await tile(src, size) : null;