Skip to content

Commit

Permalink
docs: update README (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
chenjiahan authored Dec 11, 2024
1 parent e66cdfe commit 367e7be
Showing 1 changed file with 33 additions and 9 deletions.
42 changes: 33 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ export default {
};
```

## Options

The plugin accepts an array of compressor configuration options, each of which can be either a string or an object. The string can be the name of a built-in compressor and its default configuration enabled.
Or use the object format configuration and specify the compressor in the `use` field. The remaining fields of the object will be used as compressor configuration options.
## Default Compressors

By default, the plugin will enable `jpeg`, `png`, `ico` image compressors, which are equivalent to the following two examples:

Expand All @@ -45,19 +42,48 @@ pluginImageCompress(["jpeg", "png", "ico"]);
pluginImageCompress([{ use: "jpeg" }, { use: "png" }, { use: "ico" }]);
```

## Supported Compressors

The plugin supports the following compressors:

- `jpeg`: For JPEG images.
- `png`: For PNG images.
- `pngLossless`: For PNG images with lossless compression.
- `ico`: For ICO images.
- `svg`: For SVG images.
- `avif`: For AVIF images.

Only SVG are compressed by `svgo`, other compressors are compressed by `@napi-rs/image`.

## Options

The plugin accepts an array of compressor configuration options, each of which can be either a string or an object. The string can be the name of a built-in compressor and its default configuration enabled.

Or use the object format configuration and specify the compressor in the `use` field. The remaining fields of the object will be used as compressor configuration options.

The default configuration can be overridden by specifying a configuration option.
For example, to allow the jpeg compressor to recognize new extension name and to set the quality of the png compressor.

```js
pluginImageCompress([
// Options for @napi-rs/image `compressJpeg` method
{ use: "jpeg", test: /\.(?:jpg|jpeg|jpe)$/ },
// Options for @napi-rs/image `pngQuantize` method
{ use: "png", minQuality: 50 },
"ico",
// Options for @napi-rs/image `avif` method
{ use: "avif", quality: 80 },
// Options for svgo
{ use: 'svg', floatPrecision: 2 }
// No options yet
{ use: "ico" },
]);
```

The default `png` compressor is lossy.
If you want to replace it with a lossless compressor, you can use the following configuration.
For more information on compressors, please visit [@napi-rs/image](https://image.napi.rs/docs).

## Lossless PNG

The default `png` compressor is lossy. If you want to replace it with a lossless compressor, you can use the following configuration.

```js
pluginImageCompress(["jpeg", "pngLossless", "ico"]);
Expand All @@ -71,8 +97,6 @@ For example, the `png` compressor will take precedence over the `pngLossless` co
pluginImageCompress(["jpeg", "pngLossless", "ico", "png"]);
```

For more information on compressors, please visit [@napi-rs/image](https://image.napi.rs/docs).

## License

[MIT](./LICENSE).

0 comments on commit 367e7be

Please sign in to comment.