From c56036fcc7e0cdcd35e909cebf229b200215e1e9 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 1 Jul 2026 14:04:47 +0000 Subject: [PATCH 1/5] Add a Metadata panel with full generic TIFF/Exif/GPS tag support The Rust/WASM TIFF decoder now walks the raw IFD generically (via the tiff crate's tag_iter()/read_directory() APIs) instead of exposing a fixed set of curated fields, so every tag in the main IFD is surfaced, plus Exif and GPS sub-IFD tags reached by following their directory pointers recursively. The geotiff.js fallback path gets an equivalent (if less exhaustive) generic dump of whatever it already parsed. A new Metadata panel (Ctrl+M/Cmd+M, "Toggle Metadata Panel" command) shows this alongside basic file info and on-demand image statistics (min/max/mean/std, valid/non-finite pixel counts), with a "Copy as JSON" export. Wired for TIFF plus lighter file-info/stats support for EXR/NPY/PFM/PPM/HDR/PNG. --- CHANGELOG.md | 4 + media/decode-worker.js | 3 + media/imagePreview.css | 177 ++++++++++++++++++ media/imagePreview.js | 113 ++++++++++++ media/modules/metadata-panel.js | 247 ++++++++++++++++++++++++++ media/modules/normalization-helper.js | 50 ++++++ media/modules/tiff-processor.js | 5 + media/modules/tiff-tag-utils.js | 77 ++++++++ media/modules/tiff-wasm-wrapper.js | 4 +- media/wasm/tiff-wasm.js | 57 +++--- media/wasm/tiff-wasm.wasm | Bin 1383961 -> 1370275 bytes package.json | 11 ++ src/imagePreview/commands.ts | 10 ++ src/imagePreview/imagePreview.ts | 6 + src/imagePreview/types.ts | 1 + wasm/tiff-decoder/src/lib.rs | 126 +++++++++++++ 16 files changed, 869 insertions(+), 22 deletions(-) create mode 100644 media/modules/metadata-panel.js create mode 100644 media/modules/tiff-tag-utils.js diff --git a/CHANGELOG.md b/CHANGELOG.md index 56faadd..b866425 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Change Log +## Unreleased + +- Add a Metadata panel (`Toggle Metadata Panel` command, `Ctrl+M`/`Cmd+M`) showing file info, image statistics (min/max/mean/std), and — for TIFF/GeoTIFF — every tag found in the file, including Exif/GPS sub-IFD tags, plus a "Copy as JSON" export. + ## 1.8.0 - Add more compression support diff --git a/media/decode-worker.js b/media/decode-worker.js index 2fcb880..dffe4b9 100644 --- a/media/decode-worker.js +++ b/media/decode-worker.js @@ -32,6 +32,7 @@ import initTiffWasm, { decode_exr_fast, decode_hdr_fast, decode_png16_fast, deco import { NpyProcessor } from './modules/npy-processor.js'; import { PfmProcessor } from './modules/pfm-processor.js'; import { PpmProcessor } from './modules/ppm-processor.js'; +import { buildTagsFromGeotiffImage } from './modules/tiff-tag-utils.js'; // Parser-only instances: the constructors just assign fields, and the // _parse* methods used here touch no DOM or vscode APIs. @@ -170,6 +171,7 @@ function decodeTiffWasm(buffer) { rasters, min: result.min_value, max: result.max_value, + allTagsJson: result.all_tags_json, decodedWith: 'wasm (worker)', decodeTimings: timings, }; @@ -242,6 +244,7 @@ async function decodeTiffGeotiff(buffer, wasmError) { planarConfiguration: fileDirectory.PlanarConfiguration || 1, data, rasters, + allTagsJson: JSON.stringify(buildTagsFromGeotiffImage(image)), decodedWith: 'geotiff.js (worker)', wasmFallbackReason: wasmError, decodeTimings: timings, diff --git a/media/imagePreview.css b/media/imagePreview.css index be5583e..e512060 100644 --- a/media/imagePreview.css +++ b/media/imagePreview.css @@ -522,6 +522,183 @@ body img { min-width: 0; } +/* Metadata Panel */ +.metadata-panel { + position: fixed; + top: 20px; + right: 20px; + background: var(--vscode-editor-background, #1e1e1e); + border: 1px solid var(--vscode-panel-border, #3c3c3c); + border-radius: 6px; + z-index: 1000; + font-family: var(--vscode-editor-font-family, 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif); + font-size: var(--vscode-editor-font-size, 12px); + color: var(--vscode-editor-foreground, #cccccc); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3); + display: flex; + flex-direction: column; + width: 340px; + max-width: 340px; + max-height: 70vh; + box-sizing: border-box; +} + +.metadata-panel-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: 8px 12px; + background: var(--vscode-sideBarSectionHeader-background, #252526); + border-bottom: 1px solid var(--vscode-panel-border, #3c3c3c); + border-radius: 6px 6px 0 0; + gap: 8px; + flex: 0 0 auto; +} + +.metadata-panel-title { + font-weight: 600; + font-size: 13px; + flex: 1; +} + +.metadata-panel-button { + background: var(--vscode-button-secondaryBackground, #3a3a3a); + color: var(--vscode-button-secondaryForeground, #cccccc); + border: 1px solid var(--vscode-panel-border, #3c3c3c); + border-radius: 3px; + padding: 2px 8px; + font-size: 11px; + cursor: pointer; + white-space: nowrap; +} + +.metadata-panel-button:hover { + background: var(--vscode-button-secondaryHoverBackground, #454545); +} + +.metadata-panel-close { + background: transparent; + border: none; + color: var(--vscode-icon-foreground, #cccccc); + font-size: 20px; + line-height: 1; + cursor: pointer; + padding: 0; + width: 20px; + height: 20px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 3px; + flex: 0 0 auto; +} + +.metadata-panel-close:hover { + background: var(--vscode-toolbar-hoverBackground, #3a3a3a); +} + +.metadata-panel-body { + overflow-y: auto; + padding: 4px 0; +} + +.metadata-panel-empty { + padding: 12px; + font-size: 11px; + color: var(--vscode-descriptionForeground, #999999); +} + +.metadata-panel-section { + border-bottom: 1px solid var(--vscode-panel-border, #3c3c3c); +} + +.metadata-panel-section:last-child { + border-bottom: none; +} + +.metadata-panel-section > summary { + padding: 6px 12px; + font-weight: 600; + font-size: 11px; + cursor: pointer; + user-select: none; + list-style: none; +} + +.metadata-panel-section > summary::-webkit-details-marker { + display: none; +} + +.metadata-panel-section > summary::before { + content: '▶'; + display: inline-block; + margin-right: 6px; + font-size: 9px; + transition: transform 0.1s ease; +} + +.metadata-panel-section[open] > summary::before { + transform: rotate(90deg); +} + +.metadata-panel-section-content { + padding: 0 12px 8px; + font-family: var(--vscode-editor-font-family, 'Consolas', 'Monaco', monospace); + font-size: 11px; +} + +.metadata-panel-row { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 10px; + padding: 2px 0; +} + +.metadata-panel-row-name { + color: var(--vscode-descriptionForeground, #999999); + white-space: nowrap; + flex: 0 0 auto; +} + +.metadata-panel-row-value { + text-align: right; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + min-width: 0; +} + +.vscode-light .metadata-panel { + background: var(--vscode-editor-background, #ffffff); + border: 1px solid var(--vscode-panel-border, #e5e5e5); + color: var(--vscode-editor-foreground, #333333); + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); +} + +.vscode-light .metadata-panel-header { + background: var(--vscode-sideBarSectionHeader-background, #f3f3f3); + border-color: var(--vscode-panel-border, #e5e5e5); +} + +.vscode-light .metadata-panel-button { + background: var(--vscode-button-secondaryBackground, #e8e8e8); + color: var(--vscode-button-secondaryForeground, #333333); + border-color: var(--vscode-panel-border, #d0d0d0); +} + +.vscode-light .metadata-panel-button:hover { + background: var(--vscode-button-secondaryHoverBackground, #d8d8d8); +} + +.vscode-light .metadata-panel-close:hover { + background: var(--vscode-toolbar-hoverBackground, #e8e8e8); +} + +.vscode-light .metadata-panel-section { + border-color: var(--vscode-panel-border, #e5e5e5); +} + /* Light theme adjustments for histogram */ .vscode-light .histogram-overlay { background: var(--vscode-editor-background, #ffffff); diff --git a/media/imagePreview.js b/media/imagePreview.js index 2644c2d..544de1e 100644 --- a/media/imagePreview.js +++ b/media/imagePreview.js @@ -16,6 +16,7 @@ import { RawProcessor } from './modules/raw-processor.js'; import { ZoomController } from './modules/zoom-controller.js'; import { MouseHandler } from './modules/mouse-handler.js'; import { HistogramOverlay } from './modules/histogram-overlay.js'; +import { MetadataPanel } from './modules/metadata-panel.js'; import { ColormapConverter } from './modules/colormap-converter.js'; import { ImageRenderer, ImageStatsCalculator } from './modules/normalization-helper.js'; import { DecodeWorkerClient } from './modules/decode-worker-client.js'; @@ -88,6 +89,7 @@ import { LayersPanel } from './modules/layers-panel.js'; const workerProcessors = [tiffProcessor, exrProcessor, npyProcessor, pfmProcessor, ppmProcessor, pngProcessor, hdrProcessor]; for (const p of workerProcessors) { p.decodeWorker = decodeWorkerClient; } const histogramOverlay = new HistogramOverlay(settingsManager, vscode); + const metadataPanel = new MetadataPanel(settingsManager, vscode); const colormapConverter = new ColormapConverter(); mouseHandler.setNpyProcessor(npyProcessor); mouseHandler.setPfmProcessor(pfmProcessor); @@ -1853,6 +1855,11 @@ import { LayersPanel } from './modules/layers-panel.js'; }); break; + case 'toggleMetadata': + metadataPanel.toggle(); + updateMetadataData(); + break; + case 'restoreHistogramState': // Restore histogram state from extension (global state) // Skip notification since extension already knows the state @@ -1917,11 +1924,117 @@ import { LayersPanel } from './modules/layers-panel.js'; }); } + /** + * Gather the currently active image's metadata/tags/statistics for the + * Metadata panel, checking each processor's stored raw data in the same + * priority order as updateHistogramData below. + * @returns {import('./modules/metadata-panel.js').MetadataInfo|null} + */ + function gatherActiveMetadataInfo() { + /** @type {string} */ + let formatLabel; + /** @type {Record} */ + let fileFields; + /** @type {import('./modules/tiff-tag-utils.js').TagEntry[]} */ + let tags = []; + /** @type {ArrayLike|null} */ + let data = null; + let width = 0, height = 0, channels = 1; + + if (tiffProcessor.rawTiffData) { + const ifd = tiffProcessor.rawTiffData.ifd; + width = ifd.width; height = ifd.height; channels = ifd.t277 || 1; + const bitsPerSample = ifd.t258 || 8; + const sampleFormat = ifd.t339; + const sampleFormatLabel = sampleFormat === 3 ? 'IEEE float' : (sampleFormat === 2 ? 'signed int' : 'unsigned int'); + formatLabel = 'TIFF'; + fileFields = { + 'Dimensions': `${width} x ${height}`, + 'Channels': String(channels), + 'Bits/Sample': String(bitsPerSample), + 'Sample Format': sampleFormatLabel + }; + tags = tiffProcessor._lastAllTags || []; + data = tiffProcessor.rawTiffData.data; + } else if (exrProcessor.rawExrData) { + const r = exrProcessor.rawExrData; + width = r.width; height = r.height; channels = r.channels || 1; + formatLabel = 'EXR'; + fileFields = { + 'Dimensions': `${width} x ${height}`, + 'Channels': String(channels), + 'Channel Names': (r.channelNames || []).join(', ') || 'n/a', + 'Precision': r.type === 1016 ? 'half (float16)' : 'float32' + }; + data = r.data; + } else if (npyProcessor._lastRaw) { + const r = npyProcessor._lastRaw; + width = r.width; height = r.height; channels = r.channels || 1; + formatLabel = 'NPY/NPZ'; + fileFields = { 'Dimensions': `${width} x ${height}`, 'Channels': String(channels), 'Dtype': r.dtype || 'n/a' }; + data = r.data; + } else if (pfmProcessor._lastRaw) { + const r = pfmProcessor._lastRaw; + width = r.width; height = r.height; channels = r.channels || 1; + formatLabel = 'PFM'; + fileFields = { 'Dimensions': `${width} x ${height}`, 'Channels': String(channels) }; + data = r.data; + } else if (hdrProcessor._lastRaw) { + const r = hdrProcessor._lastRaw; + width = r.width; height = r.height; channels = r.channels || 3; + formatLabel = 'HDR (Radiance)'; + fileFields = { 'Dimensions': `${width} x ${height}`, 'Channels': String(channels) }; + data = r.data; + } else if (ppmProcessor._lastRaw) { + const r = ppmProcessor._lastRaw; + width = r.width; height = r.height; channels = r.channels || 1; + formatLabel = r.format || 'PPM/PGM/PBM'; + fileFields = { 'Dimensions': `${width} x ${height}`, 'Channels': String(channels), 'Max Value': String(r.maxval) }; + data = r.data; + } else if (pngProcessor._lastRaw) { + const r = pngProcessor._lastRaw; + width = r.width; height = r.height; channels = r.channels || 4; + formatLabel = 'PNG'; + fileFields = { 'Dimensions': `${width} x ${height}`, 'Channels': String(channels), 'Bit Depth': String(r.bitDepth || 8) }; + data = r.data; + } else { + return null; + } + + /** @type {import('./modules/metadata-panel.js').MetadataInfo['stats']} */ + let stats = null; + if (data && width && height) { + try { + stats = ImageStatsCalculator.calculateExtendedStats(data, width, height, channels || 1); + } catch { + stats = null; + } + } + + return { formatLabel, fileFields, tags, stats }; + } + + /** + * Refresh the Metadata panel, if visible, from the currently active image. + * Cheap no-op when the panel is closed. + */ + function updateMetadataData() { + if (!canvas || !hasLoadedImage || !metadataPanel.getVisibility()) { + return; + } + try { + metadataPanel.render(gatherActiveMetadataInfo()); + } catch (error) { + console.warn('[MetadataPanel] Failed to gather metadata:', error); + } + } + /** * Update histogram with current image data. * Uses raw image data when available for accurate value representation. */ function updateHistogramData() { + updateMetadataData(); if (!canvas || !hasLoadedImage) { return; } diff --git a/media/modules/metadata-panel.js b/media/modules/metadata-panel.js new file mode 100644 index 0000000..dac6fc6 --- /dev/null +++ b/media/modules/metadata-panel.js @@ -0,0 +1,247 @@ +// @ts-check +"use strict"; + +/** @typedef {import('./settings-manager.js').SettingsManager} SettingsManager */ +/** @typedef {{postMessage: (msg: any) => any}} VsCodeApi */ +/** @typedef {import('./tiff-tag-utils.js').TagEntry} TagEntry */ +/** + * @typedef {Object} MetadataInfo + * @property {string} formatLabel + * @property {Record} fileFields + * @property {TagEntry[]} tags + * @property {{min:number,max:number,mean:number,std:number,validCount:number,nonFiniteCount:number,totalCount:number}|null} stats + */ + +/** + * Metadata Panel Module + * + * Shows file/format info, image statistics, and — for TIFF/GeoTIFF — every + * tag found in the file (main IFD plus Exif/GPS sub-IFDs), generically: no + * curated subset, whatever the decoder found is listed here. + */ +export class MetadataPanel { + /** + * @param {SettingsManager} settingsManager + * @param {VsCodeApi} vscode + */ + constructor(settingsManager, vscode) { + this.settingsManager = settingsManager; + this.vscode = vscode; + + /** @type {HTMLDivElement|null} */ + this.overlay = null; + /** @type {HTMLDivElement|null} */ + this.body = null; + /** @type {HTMLButtonElement|null} */ + this.copyButton = null; + this.isVisible = false; + /** @type {MetadataInfo|null} */ + this.lastInfo = null; + + this.createOverlay(); + } + + createOverlay() { + this.overlay = document.createElement('div'); + this.overlay.className = 'metadata-panel'; + this.overlay.style.display = 'none'; + + const header = document.createElement('div'); + header.className = 'metadata-panel-header'; + + const title = document.createElement('div'); + title.className = 'metadata-panel-title'; + title.textContent = 'Metadata'; + + this.copyButton = document.createElement('button'); + this.copyButton.className = 'metadata-panel-button'; + this.copyButton.textContent = 'Copy as JSON'; + this.copyButton.title = 'Copy all metadata and statistics as JSON'; + this.copyButton.onclick = () => this.copyAsJson(); + + const closeBtn = document.createElement('button'); + closeBtn.className = 'metadata-panel-close'; + closeBtn.textContent = '×'; + closeBtn.title = 'Close metadata panel'; + closeBtn.onclick = () => this.hide(); + + header.appendChild(title); + header.appendChild(this.copyButton); + header.appendChild(closeBtn); + + this.body = document.createElement('div'); + this.body.className = 'metadata-panel-body'; + + this.overlay.appendChild(header); + this.overlay.appendChild(this.body); + + document.body.appendChild(this.overlay); + } + + /** + * @param {boolean} [skipNotification=false] + */ + show(skipNotification = false) { + this.isVisible = true; + if (this.overlay) this.overlay.style.display = 'flex'; + if (!skipNotification) { + this.vscode.postMessage({ type: 'metadataVisibilityChanged', isVisible: true }); + } + } + + /** + * @param {boolean} [skipNotification=false] + */ + hide(skipNotification = false) { + this.isVisible = false; + if (this.overlay) this.overlay.style.display = 'none'; + if (!skipNotification) { + this.vscode.postMessage({ type: 'metadataVisibilityChanged', isVisible: false }); + } + } + + toggle() { + if (this.isVisible) { + this.hide(); + } else { + this.show(); + } + } + + getVisibility() { + return this.isVisible; + } + + /** + * @param {number} value + */ + formatNumber(value) { + if (!Number.isFinite(value)) { return String(value); } + if (Math.abs(value) !== 0 && (Math.abs(value) < 0.001 || Math.abs(value) >= 100000)) { + return value.toExponential(3); + } + return value.toPrecision(6).replace(/\.?0+$/, '') || '0'; + } + + /** + * @param {string} title + * @param {boolean} open + * @returns {{details: HTMLDetailsElement, content: HTMLDivElement}} + */ + createSection(title, open) { + const details = document.createElement('details'); + details.className = 'metadata-panel-section'; + details.open = open; + + const summary = document.createElement('summary'); + summary.textContent = title; + details.appendChild(summary); + + const content = document.createElement('div'); + content.className = 'metadata-panel-section-content'; + details.appendChild(content); + + return { details, content }; + } + + /** + * @param {HTMLElement} parent + * @param {string} name + * @param {string} value + */ + appendRow(parent, name, value) { + const row = document.createElement('div'); + row.className = 'metadata-panel-row'; + + const nameSpan = document.createElement('span'); + nameSpan.className = 'metadata-panel-row-name'; + nameSpan.textContent = name; + + const valueSpan = document.createElement('span'); + valueSpan.className = 'metadata-panel-row-value'; + valueSpan.textContent = value; + valueSpan.title = value; + + row.appendChild(nameSpan); + row.appendChild(valueSpan); + parent.appendChild(row); + } + + /** + * @param {MetadataInfo|null} info + */ + render(info) { + this.lastInfo = info; + if (!this.body) { return; } + this.body.textContent = ''; + + if (!info) { + const empty = document.createElement('div'); + empty.className = 'metadata-panel-empty'; + empty.textContent = 'No metadata available for this image.'; + this.body.appendChild(empty); + return; + } + + // File section + const fileSection = this.createSection(`File (${info.formatLabel})`, true); + for (const [name, value] of Object.entries(info.fileFields)) { + this.appendRow(fileSection.content, name, value); + } + this.body.appendChild(fileSection.details); + + // Statistics section + if (info.stats) { + const statsSection = this.createSection('Statistics', true); + const s = info.stats; + this.appendRow(statsSection.content, 'Min', this.formatNumber(s.min)); + this.appendRow(statsSection.content, 'Max', this.formatNumber(s.max)); + this.appendRow(statsSection.content, 'Mean', this.formatNumber(s.mean)); + this.appendRow(statsSection.content, 'Std Dev', this.formatNumber(s.std)); + this.appendRow(statsSection.content, 'Valid Samples', `${s.validCount.toLocaleString()} / ${s.totalCount.toLocaleString()}`); + if (s.nonFiniteCount > 0) { + this.appendRow(statsSection.content, 'NaN/Infinite', s.nonFiniteCount.toLocaleString()); + } + this.body.appendChild(statsSection.details); + } + + // Tag sections, grouped, in a stable order with the main tag table first. + if (info.tags && info.tags.length > 0) { + /** @type {Map} */ + const groups = new Map(); + for (const entry of info.tags) { + const group = entry.group || 'Tags'; + if (!groups.has(group)) { groups.set(group, []); } + /** @type {TagEntry[]} */ (groups.get(group)).push(entry); + } + const groupOrder = ['TIFF', 'GeoKeys', 'Exif', 'GPS']; + const orderedGroups = [ + ...groupOrder.filter(g => groups.has(g)), + ...Array.from(groups.keys()).filter(g => !groupOrder.includes(g)) + ]; + for (const group of orderedGroups) { + const entries = groups.get(group) || []; + const section = this.createSection(`${group} Tags (${entries.length})`, group === 'TIFF'); + for (const entry of entries) { + this.appendRow(section.content, entry.name, entry.value); + } + this.body.appendChild(section.details); + } + } + } + + async copyAsJson() { + if (!this.lastInfo || !this.copyButton) { return; } + const text = JSON.stringify(this.lastInfo, null, 2); + const originalLabel = this.copyButton.textContent; + try { + await navigator.clipboard.writeText(text); + this.copyButton.textContent = 'Copied!'; + } catch { + this.copyButton.textContent = 'Copy failed'; + } + setTimeout(() => { + if (this.copyButton) { this.copyButton.textContent = originalLabel; } + }, 1500); + } +} diff --git a/media/modules/normalization-helper.js b/media/modules/normalization-helper.js index 4a7f7f3..64f5d54 100644 --- a/media/modules/normalization-helper.js +++ b/media/modules/normalization-helper.js @@ -289,6 +289,56 @@ export class ImageStatsCalculator { PerfTrace.mark('stats'); return { min: minVal, max: maxVal }; } + + /** + * On-demand extended statistics (mean/std/valid & non-finite counts) for + * the Metadata panel. Not part of the hot render path — computed once + * when the panel is opened, using the same first-3-channels scan + * convention as calculateFloatStats/calculateIntegerStats above. + * @param {ArrayLike} data + * @param {number} width + * @param {number} height + * @param {number} channels + * @returns {{min:number,max:number,mean:number,std:number,validCount:number,nonFiniteCount:number,totalCount:number}} + */ + static calculateExtendedStats(data, width, height, channels) { + let minVal = Infinity; + let maxVal = -Infinity; + let sum = 0; + let sumSq = 0; + let validCount = 0; + let nonFiniteCount = 0; + + const len = width * height; + const scanChannels = channels === 1 ? 1 : Math.min(channels, 3); + for (let i = 0; i < len; i++) { + const base = i * channels; + for (let c = 0; c < scanChannels; c++) { + const val = data[base + c]; + if (Number.isFinite(val)) { + if (val < minVal) minVal = val; + if (val > maxVal) maxVal = val; + sum += val; + sumSq += val * val; + validCount++; + } else { + nonFiniteCount++; + } + } + } + + const mean = validCount > 0 ? sum / validCount : NaN; + const variance = validCount > 0 ? Math.max(0, sumSq / validCount - mean * mean) : NaN; + return { + min: validCount > 0 ? minVal : NaN, + max: validCount > 0 ? maxVal : NaN, + mean, + std: Math.sqrt(variance), + validCount, + nonFiniteCount, + totalCount: len * scanChannels + }; + } } /** diff --git a/media/modules/tiff-processor.js b/media/modules/tiff-processor.js index 9109fa8..868ae0c 100644 --- a/media/modules/tiff-processor.js +++ b/media/modules/tiff-processor.js @@ -4,6 +4,7 @@ import { NormalizationHelper, ImageRenderer, ImageStatsCalculator } from './norm import { TiffWasmProcessor } from './tiff-wasm-wrapper.js'; import { PerfTrace } from './perf-trace.js'; import { WebGL2FloatRenderer } from './webgl2-float-renderer.js'; +import { parseAllTagsJson, buildTagsFromGeotiffImage } from './tiff-tag-utils.js'; /** * @typedef {Object} GeoTIFFGlobal @@ -40,6 +41,8 @@ export class TiffProcessor { this._lastStatistics = null; // Cache min/max statistics this._lastStatisticsRgb24Mode = false; // Track whether cached stats were computed in rgb24 mode this._lastRenderHistogram = null; // Histogram computed during render when requested + /** @type {import('./tiff-tag-utils.js').TagEntry[]} */ + this._lastAllTags = []; // Every TIFF/Exif/GPS tag found in the current file, for the Metadata panel this._lastRenderUsedWebGL = false; // True when the latest render drew directly to the canvas /** @type {{ floatData: Float32Array, width?: number, height?: number, min?: number, max?: number } | null} */ this._convertedFloatData = null; // Cache converted float data for analysis @@ -330,6 +333,7 @@ export class TiffProcessor { this._lastStatistics = { min: wasmResult.min, max: wasmResult.max }; this._lastStatisticsRgb24Mode = false; } + this._lastAllTags = parseAllTagsJson(wasmResult.allTagsJson); // Send format information to VS Code if (this.vscode && this._isInitialLoad) { @@ -456,6 +460,7 @@ export class TiffProcessor { }, data: data }; + this._lastAllTags = buildTagsFromGeotiffImage(image); // Send format information to VS Code BEFORE rendering // This allows the extension to apply format-specific settings first diff --git a/media/modules/tiff-tag-utils.js b/media/modules/tiff-tag-utils.js new file mode 100644 index 0000000..540fd7b --- /dev/null +++ b/media/modules/tiff-tag-utils.js @@ -0,0 +1,77 @@ +// @ts-check +"use strict"; + +/** + * Shared helpers for the TIFF tag/metadata dump surfaced in the Metadata panel. + * + * The Rust/WASM decoder (default path) walks the raw IFD generically and + * returns every tag it finds — including Exif/GPS sub-IFD tags — as a JSON + * string via `TiffResult.all_tags_json`. `parseAllTagsJson` just parses that. + * + * The geotiff.js fallback path (used when the Rust decoder rejects a TIFF + * variant) doesn't expose an equivalent raw-tag walk, so `buildTagsFromGeotiffImage` + * enumerates whatever geotiff.js already parsed into `image.fileDirectory` / + * `image.geoKeys` generically — no curated tag list on this path either. + */ + +/** @typedef {{tag: number|null, name: string, group: string, value: string}} TagEntry */ + +/** + * @param {string|undefined|null} json + * @returns {TagEntry[]} + */ +export function parseAllTagsJson(json) { + if (!json) { return []; } + try { + const parsed = JSON.parse(json); + return Array.isArray(parsed) ? parsed : []; + } catch { + return []; + } +} + +const MAX_SHOWN_ARRAY_VALUES = 16; + +/** + * @param {any} value + * @returns {string} + */ +function stringifyTagValue(value) { + if (value === null || value === undefined) { return ''; } + if (Array.isArray(value) || ArrayBuffer.isView(value)) { + const arr = Array.from(/** @type {ArrayLike} */ (value)); + const shown = arr.slice(0, MAX_SHOWN_ARRAY_VALUES).join(', '); + return arr.length > MAX_SHOWN_ARRAY_VALUES + ? `${shown}, … (${arr.length - MAX_SHOWN_ARRAY_VALUES} more)` + : shown; + } + if (typeof value === 'object') { + try { return JSON.stringify(value); } catch { return String(value); } + } + return String(value); +} + +/** + * Enumerate every tag geotiff.js has already parsed for an image, generically + * (no curated subset) — used only on the geotiff.js compatibility fallback + * path, since the Rust/WASM decoder path has its own raw-IFD walk. + * @param {any} image - geotiff.js GeoTIFFImage instance + * @returns {TagEntry[]} + */ +export function buildTagsFromGeotiffImage(image) { + /** @type {TagEntry[]} */ + const out = []; + const fileDirectory = image?.fileDirectory || {}; + for (const [name, rawValue] of Object.entries(fileDirectory)) { + out.push({ tag: null, name, group: 'TIFF', value: stringifyTagValue(rawValue) }); + } + // geotiff.js resolves the GeoKeyDirectory into a plain object when present. + let geoKeys = null; + try { geoKeys = typeof image?.getGeoKeys === 'function' ? image.getGeoKeys() : image?.geoKeys; } catch { /* not a GeoTIFF */ } + if (geoKeys && typeof geoKeys === 'object') { + for (const [name, rawValue] of Object.entries(geoKeys)) { + out.push({ tag: null, name, group: 'GeoKeys', value: stringifyTagValue(rawValue) }); + } + } + return out; +} diff --git a/media/modules/tiff-wasm-wrapper.js b/media/modules/tiff-wasm-wrapper.js index 34a5b2c..d16903f 100644 --- a/media/modules/tiff-wasm-wrapper.js +++ b/media/modules/tiff-wasm-wrapper.js @@ -69,6 +69,7 @@ async function initWasm() { * @property {Float32Array} data - Pixel data as floats * @property {number} min - Minimum value * @property {number} max - Maximum value + * @property {string} allTagsJson - JSON array of every tag found in the file (TIFF/Exif/GPS), see tiff-tag-utils.js */ /** @@ -130,7 +131,8 @@ export class TiffWasmProcessor { directDecode: result.direct_decode, data: new Float32Array(result.get_data_as_f32()), min: result.min_value, - max: result.max_value + max: result.max_value, + allTagsJson: result.all_tags_json }; return decodeResult; diff --git a/media/wasm/tiff-wasm.js b/media/wasm/tiff-wasm.js index 163878d..46d2d70 100644 --- a/media/wasm/tiff-wasm.js +++ b/media/wasm/tiff-wasm.js @@ -140,61 +140,61 @@ export function decode_png16_fast(data) { /** * @param {Uint8Array} data - * @returns {HdrResult} + * @returns {ExrResult} */ -export function decode_hdr_fast(data) { +export function decode_exr_fast(data) { const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.decode_hdr_fast(ptr0, len0); + const ret = wasm.decode_exr_fast(ptr0, len0); if (ret[2]) { throw takeFromExternrefTable0(ret[1]); } - return HdrResult.__wrap(ret[0]); + return ExrResult.__wrap(ret[0]); } /** - * Decode a TIFF file without eagerly computing min/max statistics. - * - * The webview render path computes stats lazily when a non-gamma mode needs - * them. Skipping eager stats saves a full pass over large float TIFFs during - * the common gamma-mode initial load. * @param {Uint8Array} data - * @returns {TiffResult} + * @returns {HdrResult} */ -export function decode_tiff_fast(data) { +export function decode_hdr_fast(data) { const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.decode_tiff_fast(ptr0, len0); + const ret = wasm.decode_hdr_fast(ptr0, len0); if (ret[2]) { throw takeFromExternrefTable0(ret[1]); } - return TiffResult.__wrap(ret[0]); + return HdrResult.__wrap(ret[0]); } /** + * Decode a TIFF file from an ArrayBuffer + * Returns TiffResult with image data and metadata * @param {Uint8Array} data - * @returns {ExrResult} + * @returns {TiffResult} */ -export function decode_exr_fast(data) { +export function decode_tiff(data) { const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.decode_exr_fast(ptr0, len0); + const ret = wasm.decode_tiff(ptr0, len0); if (ret[2]) { throw takeFromExternrefTable0(ret[1]); } - return ExrResult.__wrap(ret[0]); + return TiffResult.__wrap(ret[0]); } /** - * Decode a TIFF file from an ArrayBuffer - * Returns TiffResult with image data and metadata + * Decode a TIFF file without eagerly computing min/max statistics. + * + * The webview render path computes stats lazily when a non-gamma mode needs + * them. Skipping eager stats saves a full pass over large float TIFFs during + * the common gamma-mode initial load. * @param {Uint8Array} data * @returns {TiffResult} */ -export function decode_tiff(data) { +export function decode_tiff_fast(data) { const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; - const ret = wasm.decode_tiff(ptr0, len0); + const ret = wasm.decode_tiff_fast(ptr0, len0); if (ret[2]) { throw takeFromExternrefTable0(ret[1]); } @@ -560,6 +560,21 @@ export class TiffResult { const ret = wasm.tiffresult_tile_length(this.__wbg_ptr); return ret >>> 0; } + /** + * @returns {string} + */ + get all_tags_json() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.tiffresult_all_tags_json(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } /** * @returns {boolean} */ diff --git a/media/wasm/tiff-wasm.wasm b/media/wasm/tiff-wasm.wasm index 4bfbaed57d9620c78f2fca337542094f97b97d62..99d177cd44733675c89483ebdd59db36c50ff0ec 100644 GIT binary patch literal 1370275 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 -N4o^fOgxUl+HuR3cwC3 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