volleyball-dev-frontend/node_modules/jay-peg/README.md
2025-06-02 16:42:16 +00:00

121 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# jay-peg
<a href="https://www.npmjs.com/package/jay-peg">
<img src="https://img.shields.io/npm/v/jay-peg.svg" />
</a>
<a href="https://github.com/diegomura/jay-peg/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/diegomura/jay-peg.svg" />
</a>
<a href="https://github.com/prettier/prettier">
<img src="https://img.shields.io/badge/styled_with-prettier-ff69b4.svg" />
</a>
## Overview
A blazing-fast and compact JavaScript library dedicated to efficiently decoding JPEG images.
## Installation
Using npm:
```bash
npm install jay-peg
```
Using yarn:
```bash
yarn add jay-peg
```
## Usage
Use the `decoder` providing a JPEG data buffer as input.
```javascript
import JPEG from 'jay-peg';
const jpegBuffer = /* your JPEG buffer here */;
const imageMarkers = JPEG.decoder(jpegBuffer);
console.log(imageMarkers);
```
## Example Output
The output consists of a structured array of image markers:
```javascript
[
{
type: 65496,
name: "SOI",
},
{
type: 65505,
name: "EXIF",
length: 16382,
identifier: "Exif\x00\x00",
entries: [Object],
},
{
type: 65499,
name: "DAC",
length: 132,
tables: [[Object], [Object]],
},
// ... and so forth
{
type: 65497,
name: "EOI",
},
];
```
## API
### `decoder(buffer: Buffer | Uint8Array): Array<ImageMarker>`
The `decoder` function accepts a JPEG buffer as its sole argument and returns an array of image markers.
#### Parameters
- `buffer`: A Buffer or Uint8Array containing the JPEG image data.
#### Returns
An array of objects representing various markers found in the JPEG image.
### `ImageMarker`
Each `ImageMarker` object in the output array adheres to the following structure:
- `type` (Number): The marker type.
- `name` (String): The marker name.
- `length` (Number): The length of the marker data.
- Additional properties specific to certain marker types.
## Performance
Performance is a key focus of `jay-peg`. 4 sizes of images were benchmarked:
- `small`: 300×150, 8KB image
- `medium`: 800×600, 70KB image
- `large`: 1920×1080, 332KB image
- `huge`: 2448×3264, 2.2MB image
For each of these, the decoding speed was measured as follows:
```
Benchmarked: small: x 13,393 ops/sec ±4.77% (96 runs sampled)
Benchmarked: medium: x 12,894 ops/sec ±0.10% (99 runs sampled)
Benchmarked: large: x 9,241 ops/sec ±0.25% (99 runs sampled)
Benchmarked: huge: x 2,672 ops/sec ±0.12% (100 runs sampled)
```
_Measures were taken in an MacBook Air 2024, Apple M3 w/16GB of RAM._
## License
`jay-peg` is released under the [MIT License](LICENSE)