PureJsImage · JPEG XL
JPEG XL progressive and selective decoding
Read real early stages, scaled output and viewports in a worker. Compare source access with HTTP transfer without loading a full image first.
These tools use the current repository build. Repository functionality may be newer than the npm release. Static lossy encoding is qualified; lossy animation remains Experimental.
Try a sample or open a local file.
Actual stages and source reads
Teal: first source read. Orange: repeated read. This map shows library source requests, not HTTP packets. HTTP transfer, cache and managed working bytes are reported separately. Unavailable measurements remain null.
Timing, metadata and numeric evidence
No file opened.
Browser API
import { openJpegXlSession } from 'purejsimage/jpegxl'
const session = await openJpegXlSession(file)
try {
for await (const event of session.progressive({scaleDenominator: 8})) {
console.log(event.type)
if (event.type === 'block') event.block.release?.()
}
} finally { await session.close() }Run codec work in a worker. The example uses the same public APIs as this tool. Unsupported selective dependencies are reported as fallbacks or errors; a displayed image does not prove selective access.