Show HN: PureJsImage, image codecs and scientific raster I/O in TypeScript

ardme1 pts0 comments

Browser demo | PureJsImageSkip to image workspace

Browser image viewer + converter<br>Open an image. Choose what to do.<br>View any supported image with pan and zoom, or switch to Convert and create JPEG, PNG, WebP, AVIF, TIFF, and other first-party output. The selected mode never changes when you choose a file.

No server upload Your files stay in this tab. Public samples load from their named source only when you click Open here.

Open or drop a weird image TIFF, BigTIFF, OME-TIFF, SVS, or another supported imageChoose fileSearch samplesCELLC. elegans embryo time series · channel 1 Actual biological sample · 20 timepoints · 5.09 MiB · multiphoton OME-TIFF<br>Download, then drop ↗OME Consortium · CC BY 4.0 ↗

CELLC. elegans embryo time series · channel 2 Actual biological sample · 20 timepoints · 5.09 MiB · multiphoton OME-TIFF<br>Download, then drop ↗OME Consortium · CC BY 4.0 ↗

JP2JPEG 2000 photograph Lossless JP2 · 277.4 KiB · project fixture<br>Open hereDownload ↗

WEBPLossless WebP with alpha 386 × 395 · project fixture<br>Open hereDownload ↗

F32Fire danger Float32 GeoTIFF · 47.5 KiB · NOAA<br>Open hereDownload ↗

F32Drought index Float32 GeoTIFF · about 100 KiB · NOAA<br>Open hereDownload ↗

F64Precipitation forecast Float64 GeoTIFF · 3 images · NOAA<br>Open hereDownload ↗

COGSmoke concentration Cloud-optimized TIFF · 3 images · NOAA<br>Open hereDownload ↗

F32Outlook boundary Float32 GeoTIFF · 13.6 KiB · NOAA<br>Open hereDownload ↗

SEMNickel dislocations · 20k ECCI scanning electron micrograph · TIFF · Recherche Data Gouv<br>Open hereDownload ↗

SEMNickel diffraction contrast ECCI scanning electron micrograph · TIFF · Recherche Data Gouv<br>Open hereDownload ↗

SEMNanoindentation field ECCI scanning electron micrograph · TIFF · Recherche Data Gouv<br>Open hereDownload ↗

SEMNickel stereo view · 1° ECCI stereoscopy micrograph · TIFF · Recherche Data Gouv<br>Open hereDownload ↗

SEMNickel stereo view · 20° ECCI stereoscopy micrograph · TIFF · Recherche Data Gouv<br>Open hereDownload ↗

SEMCrystal orientation contrast Optimized ECCI micrograph · TIFF · Recherche Data Gouv<br>Open hereDownload ↗

CELLCell-division time lapse 93-frame OME-TIFF · 126.1 MiB · MitoCheck · public domain<br>Large file ↗

RETRetina Z-stack 64-plane, 2-channel OME-TIFF · 214.8 MiB · CC BY 4.0<br>Large file ↗

SVSPathology whole-slide region Aperio SVS pyramid · OpenSlide test data<br>Download file ↗

J2KPathology slide tile Raw JPEG 2000 tile extracted from Aperio SVS<br>Download ↗

EARTHBlue Marble Earth Lossless JPEG 2000 · scientific visualization<br>Open hereDownload ↗

G1616-bit scientific grayscale Lossless JPEG 2000 · exact high-depth samples<br>Open hereDownload ↗

RGB1616-bit scientific RGB Lossless JPEG 2000 · exact high-depth samples<br>Open hereDownload ↗

12B12-bit lossless AVIF High-bit-depth identity-color AVIF fixture<br>Open hereDownload ↗

GRIDTiled 10-bit AVIF 2 × 2 image grid · lossless YUV444<br>Open hereDownload ↗

ICOMixed multi-size icon 16/32/256px ICO · DIB + embedded PNG<br>Open hereDownload ↗

JPEGProgressive JPEG edge case AC zero-run and multi-scan conformance fixture<br>Open hereDownload ↗

No sample names match that search.

26 public sample files. Open verified CORS-enabled files here, or download source-hosted datasets and drop them above.

View image Zoom, pan, inspect, and clipConvert Transform and encode an output<br>Waiting for the client-side viewer.

Open now<br>Selected image

Image placeholderDrop a file or open an example<br>The viewer decodes the visible region locally for any supported image. Drag to pan, scroll to zoom, or choose a TIFF page or pyramid level.

Reading image structure… Large images can take a moment. No upload is occurring.

Source imagePage or pyramid level when available<br>Visible imageChoose an image firstPreviousPlayNext<br>DimensionsNot available<br>FormatNot available<br>PixelsNot available<br>LayoutNot available<br>Navigate the source Use Previous, Play, or Next for a multi-image time series. Drag to pan. Scroll, pinch, or use +/− to zoom around the pointer. Fit frames the image; 1:1 maps one source pixel to one CSS pixel.<br>“Save visible clip” runs the current source region through the PureJsImage PNG encoder. Clips above 16 megapixels require zooming in first.

Convert with TypeScriptChoose a file to begin.

Conversion optionsOutputFirst-party encoder<br>Convert toJPEGPNGWebPAVIFTIFF (Deflate)BMPQOITGARadiance HDRPBMPGMPPMPAMPFMQuality 82Lossless WebP Ignore quality and preserve exact pixels.Progressive JPEG Write a six-scan progressive file.Constrained 8-bit YUV 4:2:0 still encode with fixed quantization. Resize large photos first.

TransformsApplied in order<br>Auto-orient Apply EXIF orientation before transforms.Resize Fit inside dimensions without enlarging.Maximum width×Maximum height<br>RotateDo not rotate90° clockwise180°270° clockwiseFlip horizontal Flip vertical

AccelerationExplicit opt-in<br>Rust/WASM JPEG decoder Eligible baseline JPEG input can use the optional accelerator. Other work remains TypeScript.TypeScript reference selected.

Original<br>No image...

open heredownload image tiff jpeg file

Related Articles