imagetools-core

A toolbox of import directives that can transform your image at compile-time. All of the image transformations are powered by sharp.

Usage no npm install needed!

<script type="module">
  import imagetoolsCore from 'https://cdn.skypack.dev/imagetools-core';
</script>

README

imagetools-core

npm (tag) standard-readme compliant codecov

A toolbox of import directives that can transform your image at compile-time. All of the image transformations are powered by sharp.

This package holds all transforms and core utility functions needed to integrate imagetools with any builtool,
or to create a standalone transformation server!

Read the docs to learn more!

Table of Contents

Install

npm install imagetools-core
yarn add imagetools-core

Usage

import { loadImage, applyTransforms, builtins } from 'imagetools-core'

// loadImageFromDisk is a utility function that creates a sharp instances of the specified image
const image = loadImage('./example.jpg')

// our image configuration
const config = {
  width: '400',
  height: '300',
  format: 'webp'
}

// This function takes our config and an array of transformFactories and creates an array of transforms
// the resulting array of transforms can be cached
const { transforms, warnings } = generateTransforms(config, builtins)

// apply the transforms and transform the given image
const { image: transformedImage, metadata } = await applyTransforms(transforms, image)

transformedImage // a sharp instance of the transformed image
metadata // the image metadata produced by the transforms
import { parseURL, resolveConfigs } from 'imagetools-core'

const src = new URL('file:///example.jpg?w=300;500;700&format=webp')

// parses the url query parameters into an array of entries
const parameters = parseURL(src)

// this function handles the ArgumentList logic
// and produces an array of config objects that can be passed to generateTransforms
const configs = resolveConfigs(parameters)

Contributing

Feel free to dive in! Open an issue or submit PRs! All information to get you started hacking on imagetools is in CONTRIBUTING.md!

License

MIT © Jonas Kruckenberg.