Please bookmark this page to avoid losing your image tool!

Image Metadata Extractor For Big Hero 6 Video File

(Free & Supports Bulk Upload)

Drag & drop your images here or

The result will appear here...
You can edit the below JavaScript code to customize the image tool.
async function processImage(originalImg, toolName = "Image Metadata Extractor for Big Hero 6 Video File", description = "big Hero 6 2014 Wonder Project Amazon Channel Jun 30 2028 1:41:52") {
    // Create the main container div to display the extracted metadata
    const container = document.createElement('div');
    container.style.fontFamily = 'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';
    container.style.padding = '25px';
    container.style.backgroundColor = '#1e293b'; // Dark background
    container.style.color = '#f8fafc';
    container.style.borderRadius = '12px';
    container.style.boxShadow = '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)';
    container.style.maxWidth = '700px';
    container.style.margin = '0 auto';
    container.style.overflow = 'hidden';

    // Add tool header
    const header = document.createElement('h2');
    header.textContent = toolName;
    header.style.marginTop = '0';
    header.style.marginBottom = '10px';
    header.style.color = '#38bdf8'; // Light blue
    header.style.fontSize = '1.4rem';
    container.appendChild(header);

    // Add description text
    const desc = document.createElement('p');
    desc.textContent = description;
    desc.style.color = '#94a3b8'; // Slate gray
    desc.style.fontSize = '0.95rem';
    desc.style.marginTop = '0';
    desc.style.marginBottom = '25px';
    desc.style.fontStyle = 'italic';
    container.appendChild(desc);

    // Create the table to present metadata
    const table = document.createElement('table');
    table.style.width = '100%';
    table.style.borderCollapse = 'collapse';
    table.style.fontSize = '0.9rem';

    // Helper to add rows to the table
    const addRow = (key, value, isHeader = false) => {
        const tr = document.createElement('tr');
        
        if (isHeader) {
            tr.style.backgroundColor = '#334155';
        } else {
            tr.style.borderBottom = '1px solid #334155';
        }
        
        const tdKey = document.createElement('td');
        tdKey.textContent = key;
        tdKey.style.padding = '12px 10px';
        tdKey.style.fontWeight = isHeader ? 'bold' : '600';
        tdKey.style.color = isHeader ? '#f8fafc' : '#cbd5e1';
        tdKey.style.width = '35%';
        tdKey.style.verticalAlign = 'top';

        const tdVal = document.createElement('td');
        tdVal.textContent = value;
        tdVal.style.padding = '12px 10px';
        tdVal.style.wordBreak = 'break-word';
        tdVal.style.color = isHeader ? '#f8fafc' : '#94a3b8';
        if (isHeader) tdVal.style.fontWeight = 'bold';

        tr.appendChild(tdKey);
        tr.appendChild(tdVal);
        table.appendChild(tr);
    };

    // Base standard image properties
    addRow('Property', 'Value', true);
    addRow('Intrinsic Width', `${originalImg.naturalWidth} px`);
    addRow('Intrinsic Height', `${originalImg.naturalHeight} px`);
    
    // Add loading text while library loads or processes
    const statusRow = document.createElement('p');
    statusRow.textContent = 'Extracting metadata...';
    statusRow.style.color = '#facc15';
    statusRow.style.fontSize = '0.9rem';
    container.appendChild(statusRow);
    container.appendChild(table);

    try {
        // Dynamically import the exact EXIF extraction library (exifr handles objects, URLs, Base64 easily)
        if (typeof window.exifr === 'undefined') {
            await new Promise((resolve, reject) => {
                const script = document.createElement('script');
                script.src = 'https://cdn.jsdelivr.net/npm/exifr/dist/full.umd.js';
                script.onload = resolve;
                script.onerror = reject;
                document.head.appendChild(script);
            });
        }

        // Parse comprehensive metadata: EXIF, IPTC, XMP, ICC, etc.
        const options = { 
            tiff: true, ifd0: true, exif: true, gps: true, 
            iptc: true, xmp: true, icc: true, jfif: true 
        };
        
        // Extract metadata parsing the actual image structure
        const metadata = await window.exifr.parse(originalImg, options);

        // Remove loading text
        if (container.contains(statusRow)) {
            container.removeChild(statusRow);
        }

        // Recursively read and append extracted metadata objects
        if (metadata && Object.keys(metadata).length > 0) {
            const addMetadataProps = (obj, prefix = '') => {
                for (const [mKey, mVal] of Object.entries(obj)) {
                    const displayKey = prefix ? `${prefix}.${mKey}` : mKey;
                    
                    if (mVal !== null && typeof mVal === 'object' && !(mVal instanceof Uint8Array) && !Array.isArray(mVal)) {
                        addMetadataProps(mVal, displayKey);
                    } else {
                        let displayVal = mVal;
                        if (mVal instanceof Uint8Array) {
                            displayVal = `[Binary Data, Length: ${mVal.length} bytes]`;
                        } else if (Array.isArray(mVal)) {
                            displayVal = mVal.join(', ');
                        }
                        addRow(displayKey, String(displayVal));
                    }
                }
            };
            
            addMetadataProps(metadata);
        } else {
            addRow('Metadata', 'No standard EXIF/Metadata tags could be found in the image.');
        }

    } catch (error) {
        if (container.contains(statusRow)) {
            container.removeChild(statusRow);
        }
        addRow('Extraction Error', error.message || 'Unable to parse image data correctly.');
    }

    return container;
}

Free Image Tool Creator

Can't find the image tool you're looking for?
Create one based on your own needs now!

Description

This tool extracts and displays detailed metadata from image files. It can retrieve intrinsic dimensions such as width and height, as well as comprehensive embedded data including EXIF, IPTC, XMP, ICC profiles, and GPS information. It is useful for photographers, digital forensic investigators, or content managers who need to inspect the technical specifications and hidden properties of an image file.

Leave a Reply

Your email address will not be published. Required fields are marked *