## File: README.md

# [Squoosh]!

[Squoosh] is an image compression web app that reduces image sizes through numerous formats.

# Privacy

Squoosh does not send your image to a server. All image compression processes locally.

However, Squoosh utilizes Google Analytics to collect the following:

- [Basic visitor data](https://support.google.com/analytics/answer/6004245?ref_topic=2919631).
- The before and after image size value.
- If Squoosh PWA, the type of Squoosh installation.
- If Squoosh PWA, the installation time and date.

# Developing

To develop for Squoosh:

1. Clone the repository
1. To install node packages, run:
   ```sh
   npm install
   ```
1. Then build the app by running:
   ```sh
   npm run build
   ```
1. After building, start the development server by running:
   ```sh
   npm run dev
   ```

# Contributing

Squoosh is an open-source project that appreciates all community involvement. To contribute to the project, follow the [contribute guide](/CONTRIBUTING.md).

[squoosh]: https://squoosh.app

---

## File: codecs/avif/enc/README.md

# AVIF encoder

- Source: <https://github.com/AOMediaCodec/libavif>
- Version: v0.5.4

## Example

Run example.js

## API

### `Uint8Array encode(std::string image_in, int image_width, int image_height, AvifOptions opts)`

Encodes the given image with given dimension to AVIF. Options looks like this:

```c++
struct AvifOptions {
  // 0 = lossless
  // 63 = worst quality
  int minQuantizer;
  int maxQuantizer;

  // [0 - 6]
  // Creates 2^n tiles in that dimension
  int tileRowsLog2;
  int tileColsLog2;

  // 0 = slowest
  // 10 = fastest
  int speed;

  // 0 = 4:2:0
  // 1 = 4:2:2
  // 2 = 4:4:4
  int subsample;
};
```

---

## File: codecs/avif/dec/README.md

# AVIF decoder

- Source: <https://github.com/AOMediaCodec/libavif>
- Version: v0.5.4

## Example

See `example.html`

## API

### `RawImage decode(std::string buffer)`

Decodes the given avif buffer into raw RGBA. `RawImage` is a class with 3 fields: `buffer`, `width`, and `height`.

---

## File: codecs/hqx/pkg/README.md

# HQX

- Source: <https://github.com/CryZe/wasmboy-rs>
- Version: v0.1.2
- License: Apache 2.0

---

## File: codecs/hqx/README.md

# HQX

- Source: <https://github.com/CryZe/wasmboy-rs>
- Version: v0.1.2
- License: Apache 2.0

---

## File: codecs/imagequant/README.md

# ImageQuant

- Source: <https://github.com/ImageOptim/libimagequant>
- Version: v2.12.1
- License: GPL3

## Dependencies

- Docker

## Example

See `example.html`

## API

### `int version()`

Returns the version of libimagequant as a number. va.b.c is encoded as 0x0a0b0c

### `RawImage quantize(std::string buffer, int image_width, int image_height, int numColors, float dithering)`

Quantizes the given images, using at most `numColors`, a value between 2 and 256. `dithering` is a value between 0 and 1 controlling the amount of dithering. `RawImage` is a class with 3 fields: `buffer`, `width`, and `height`.

### `RawImage zx_quantize(std::string buffer, int image_width, int image_height, float dithering)`

???

---

## File: codecs/oxipng/pkg/README.md

# OxiPNG

- Source: <https://github.com/shssoichiro/oxipng>
- Version: v9.0.0
- License: MIT

---

## File: codecs/oxipng/pkg-parallel/README.md

# OxiPNG

- Source: <https://github.com/shssoichiro/oxipng>
- Version: v9.0.0
- License: MIT

---

## File: codecs/oxipng/README.md

# OxiPNG

- Source: <https://github.com/shssoichiro/oxipng>
- Version: v9.0.0
- License: MIT

---

## File: codecs/resize/README.md

# Resize

- Source: <https://github.com/PistonDevelopers/resize>
- Version: v0.3.0
- License: MIT