# smartcrop-sharp

> smartcrop adapter for sharp

Latest version **2.0.8** (published 2023-09-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install smartcrop-sharp
pnpm add smartcrop-sharp
yarn add smartcrop-sharp
bun add smartcrop-sharp
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.8 |
| Published | 2023-09-04 |
| First published | 2016-06-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 119 |
| Author | Jonas Wagner |
| Maintainers | jonas |

## Links

- npm: https://www.npmjs.com/package/smartcrop-sharp
- Repository: https://github.com/jwagner/smartcrop-sharp
- Homepage: https://github.com/jwagner/smartcrop-sharp#readme
- Issues: https://github.com/jwagner/smartcrop-sharp/issues
- npm.io page: https://npm.io/package/smartcrop-sharp

## Dependencies (1)

- [smartcrop](https://npm.io/package/smartcrop.md) ^2.0.5

## Recent versions

- 2.0.8 (latest) — 2023-09-04
- 2.0.0 (beta) — 2016-09-23
- 2.0.7 — 2023-01-08
- 2.0.6 — 2022-06-04
- 2.0.5 — 2022-01-08
- 2.0.4 — 2021-09-01
- 2.0.3 — 2018-04-20
- 2.0.2 — 2018-02-12
- 1.0.5 — 2016-09-16
- 1.0.4 — 2016-09-16
- 1.0.3 — 2016-06-25
- 1.0.2 — 2016-06-25
- 1.0.1 — 2016-06-25
- 1.0.0 — 2016-06-25

## README

# smartcrop-sharp

[![Tests](https://github.com/jwagner/smartcrop-sharp/actions/workflows/tests.yml/badge.svg)](https://github.com/jwagner/smartcrop-sharp/actions/workflows/tests.yml)

This is an adapter module for using [smartcrop.js](https://github.com/jwagner/smartcrop.js)
with node.js using [sharp](https://github.com/lovell/sharp) for image decoding.

## Installation

You'll need to install `sharp` alongside `smartcrop-sharp`.

```
npm install --save smartcrop-sharp sharp
```

## API

## crop(image, options)

**Image:** string (path to file) or buffer

**Options:** options object to be passed to smartcrop

**returns:** A promise for a cropResult

## Example

```javascript
const sharp = require('sharp');
const smartcrop = require('smartcrop-sharp');

// finds the best crop of src and writes the cropped and resized image to dest.
function applySmartCrop(src, dest, width, height) {
  return smartcrop.crop(src, { width: width, height: height })
    .then(function(result) {
      const crop = result.topCrop;
      return sharp(src)
        .extract({ width: crop.width, height: crop.height, left: crop.x, top: crop.y })
        .resize(width, height)
        .toFile(dest);
    })
}

applySmartCrop('flower.jpg', 'flower-square.jpg', 128, 128);
```

## Face Detection Example

Check out [smartcrop-cli](https://github.com/jwagner/smartcrop-cli/) for a more advanced [example](https://github.com/jwagner/smartcrop-cli/blob/master/smartcrop-cli.js#L100) of how to use smartcrop from node including face detection with opencv.

## Changelog

### 2.0.8
- Update peerDependency to sharp 0.32

### 2.0.7
- Update peerDependency to sharp 0.31

### 2.0.6
- Update peerDependency to sharp 0.30

### 2.0.5
- Update peerDependency to sharp 0.29

### 2.0.4
- Updated all dependencies
- Added typescript definitions (with help from @nicholaschiang)

### 2.0.2

- **sharp is now a peer dependency you will need to install it via `npm install sharp` when updating**
- In short: It's a lot faster, especially when calculating bigger crops.
- The quality of the crops should be comparable but the exact results are going to be different.

---
_Source: https://npm.io/package/smartcrop-sharp · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
