An open API service indexing awesome lists of open source software.

https://github.com/runnerty/executor-image

Runnerty module: Image executor
https://github.com/runnerty/executor-image

Last synced: over 1 year ago
JSON representation

Runnerty module: Image executor

Awesome Lists containing this project

README

          





Smart Processes Management

[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url]

code style: prettier

# Executor for [Runnerty]: Image

Module for image processing, conversion and optimization.
It makes use of the [sharp] and [imagemin] (image optimization) modules.
It supports `JPG`, `PNG`, `WEBP`, `SVG`, `HEIF`, `TIFF` and `RAW` formats and allows the optimization of `JPG` (mozjpeg), `PNG` (pngquant), `WEBP` and `SVG`.

### Installation:

Through NPM

```bash
npm i @runnerty/executor-image
```

You can also add modules to your project with [runnerty]

```bash
npx runnerty add @runnerty/executor-image
```

This command installs the module in your project, adds example configuration in your [config.json] and creates an example plan of use.

If you have installed [runnerty] globally you can include the module with this command:

```bash
runnerty add @runnerty/executor-image
```

### Configuration:

Add in [config.json]:

```json
{
"id": "image_default",
"type": "@runnerty-executor-image"
}
```

### Plan sample:

Add in [plan.json]:

```json
{
"id": "image_default",
"input": ["/workspace/*.png"],
"destination": "/workspace/resized",
"resize": { "width": 1500 }
}
```

```json
{
"id": "image_default",
"input": ["/workspace/*.{jpg,jpeg}"],
"destination": "/workspace/optimized",
"optimized": true,
"quality": 75
}
```

```json
{
"id": "image_default",
"input": ["workspace/the_image.png"],
"destination": "/workspace/transformed",
"resize": { "height": 800 },
"rotate": 90,
"flip": true,
"flop": true,
"negate": false,
"greyscale": false,
"sharpen": true,
"toFormat": "jpg",
"optimized": true,
"quality": 80,
"flatten": { "background": "#2abb81" },
"tint": "#2abb81",
"failOnError": true
}
```

```json
{
"id": "image_default",
"input": ["workspace/*.png"],
"destination": "/workspace/watermark",
"overrideDestinationFilename": "customname",
"destinationPrefixFilename": "pre_",
"destinationSuffixFilename": "_sub",
"toFormat": "webp",
"optimized": true,
"composite": [{ "input": "/workspace/runnerty.png", "gravity": "center", "blend": "soft-light" }]
}
```

Use parameters in [toFormat]:

```json
{
"id": "image_default",
"input": ["workspace/*.png"],
"destination": "/workspace/watermark",
"toFormat": { "toFormat": "webp", "quality": 80, "alphaQuality": 90, "lossless": false }
}
```

### Output (Process values):

- `PROCESS_EXEC_MSG_OUTPUT`: Log operations message.
- `PROCESS_EXEC_ERR_OUTPUT`: Error output message.

### Other considerations

For more information see [sharp]'s documentation.

If you enable the `failOnError` parameter, the process will stop when any error occurs transforming or optimizing an image.
This may be recommended if you are only going to work on a single image at a time.
By default its value is false.

[runnerty]: https://www.runnerty.io
[downloads-image]: https://img.shields.io/npm/dm/@runnerty/executor-image.svg
[npm-url]: https://www.npmjs.com/package/@runnerty/executor-image
[npm-image]: https://img.shields.io/npm/v/@runnerty/executor-image.svg
[sharp]: https://sharp.pixelplumbing.com
[imagemin]: https://github.com/imagemin/imagemin
[toformat]: https://sharp.pixelplumbing.com/api-output#toformat
[config.json]: http://docs.runnerty.io/config/
[plan.json]: http://docs.runnerty.io/plan/