@netlogo/synchrodecoder
v3.0.0
Published
A JavaScript library for synchronously decoding JPEGs and PNGs to binary data
Downloads
13
Readme
SynchroDecoder
What Is It?
SynchroDecoder is a JavaScript library for decoding images to binary data synchronously. Generally, synchronous image decoding should be avoided, but, for some use cases, it must happen synchronously, and the standard JavaScript approaches (e.g. setting an Image
's src
) don't allow for synchrony.
This library currently only supports JPEGs and PNGs. If synchrony is not absolutely required for your use case, we strongly recommend seeking a different solution than this library. This library is only for those desperate for synchrony.
The library takes the form of an ES6 module that is comprised of only a single function of the following type:
(base64 :: String) =>
{ array :: Uint8ClampedArray
, didSucceed :: Boolean
, height :: Number
, width :: Number
}
If didSucceed
is false
, no other properties of the output object are guaranteed to be defined.
Otherwise, height
and width
are numbers of pixels. array.length
is necessarily equal to height * width * 4
, as array
takes the format of a sequence of RGBA values.
Example
import synchroDecoder from 'path_to/synchrodecoder.mjs';
const jpeg64 = "data:image/jpeg;base64,..."
const { array, height, width, didSucceed } = synchroDecoder(jpeg64);
if (didSucceed) {
const imageData = new ImageData(array, width, height);
document.getElementById('canvy').getContext('2d').putImageData(imageData, 0, 0);
} else {
alert("Error when decoding!");
}
Terms of Use
SynchroDecoder is in the public domain. To the extent possible under law, Uri Wilensky has waived all copyright and related or neighboring rights.