jpegcore
v1.1.0
Published
High-performance JavaScript JPEG decoder/encoder with robust progressive decoding and jpeg-js compatible decode API
Readme
JPEGcore
Pure JavaScript JPEG encoder/decoder/transform library.
Repository: Streetblock/JPEGcore
Highlights
- Baseline JPEG decode/encode in plain JavaScript
- Progressive JPEG decode path improved and validated
- Utilities for analysis and image transforms
- Works in browser and Node.js
jpeg-jscompatible decoder wrapper:JpegCORE.JpegJsCompat.decode(...)
Install
npm install jpegcoreUsage (Node)
const JpegCORE = require("jpegcore");jpeg-js Decoder Compatibility
const JpegCORE = require("jpegcore");
const decoded = await JpegCORE.JpegJsCompat.decode(inputBuffer, {
useTArray: true,
formatAsRGBA: true
});
console.log(decoded.width, decoded.height, decoded.data.length);decode(...) returns the same shape as jpeg-js: { data, width, height }.
Performance Note
In a local benchmark with 8 images, 30 rounds and 3 warmups,JpegCORE.JpegJsCompat.decode reached about 7.839 MPix/s vs 6.163 MPix/s for jpeg-js.decode
(about 27.18% faster in that setup).
Usage (Browser)
<script src="./JPEGcore.js"></script>
<script>
// window.JpegCORE is available
</script>Development
Run smoke test:
npm testRun local compare test (against jpeg-js reference in ../Referenz):
node dev/dev-compare.jsProject Structure
JPEGcore.js: main librarybenchmarks/: benchmark HTML and helperstests/: automated smoke testdev/: local debug/compare tooling (for development)
Copyright (c) David Block
