# exif-orientation-image

> Properly displays an image via canvas based on the exif orientation data. To be used with a file object

Latest version **1.0.1** (published 2016-09-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install exif-orientation-image
pnpm add exif-orientation-image
yarn add exif-orientation-image
bun add exif-orientation-image
```

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2016-09-14 |
| First published | 2016-09-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Nick Poisson |
| Maintainers | njam3 |
| Keywords | exif,, orientation,, canvas,, translate,, rotate,, scale,, file |

## Links

- npm: https://www.npmjs.com/package/exif-orientation-image
- Repository: https://github.com/Jam3/exif-orientation-image
- Issues: https://github.com/Jam3/exif-orientation-image/issues
- npm.io page: https://npm.io/package/exif-orientation-image

## Dependencies (1)

- [exif-orientation](https://npm.io/package/exif-orientation.md) ^1.0.0

## Alternatives

- [unionfs](https://npm.io/package/unionfs.md) — 2.2M weekly downloads
- [path-starts-with](https://npm.io/package/path-starts-with.md) — 35.9K weekly downloads
- [redzip](https://npm.io/package/redzip.md) — 1.2K weekly downloads
- [vscode-anymatch](https://npm.io/package/vscode-anymatch.md) — 848 weekly downloads
- [@ledgerhq/coin-filecoin](https://npm.io/package/@ledgerhq/coin-filecoin.md) — 793 weekly downloads

## Recent versions

- 1.0.1 (latest) — 2016-09-14
- 1.0.0 — 2016-09-14

## README

# exif-orientation-image

[![stable](http://badges.github.io/stability-badges/dist/stable.svg)](http://github.com/badges/stability-badges)

Properly displays an image via canvas based on the exif orientation data. Uses [exif-orientation](https://www.npmjs.com/package/exif-orientation).

## Install

```sh
npm install exif-orientation-image --save
```

## Example

The following example reacts to the `onChange` event of a file upload html input

```js
var getOrientedImage = require('exif-orientation-image');

fileUpload.addEventListener('change',function(e) {
  var file = e.target.files[0];
  getOrientedImage(file,function(err,canvas) {
    if (!err) {
      document.body.appendChild(canvas);
    }
  });
});
```

## Usage

[![NPM](https://nodei.co/npm/exif-orientation-image.png)](https://www.npmjs.com/package/exif-orientation-image)

#### `getOrientedImage(file,callback)`  

```file``` A file object from a file upload html input  
```callback``` A function to be called once the image is rendered in its proper position. The callback is passed 2 arguments `(err,canvas)`. If `err` is undefined, canvas will be an HTML canvas element with the correctly oriented image, otherwise err will be an `Error` object with the message of the error.

#### `orientation.translate(image,orientation,options)`  

```image``` A loaded html image element  
```orientation``` Orientation object returned from [exif-orientation](https://www.npmjs.com/package/exif-orientation). Contains scale.x, scale.y, and rotation. Rotation is a number in degrees, scale.x and scale.y are numbers.  
```options``` Custom options, right now the only options are `width` and `height` which determines the size of the returned canvas. It will use the image dimensions if not provided. 

#### `orientation.orientation()`  

Exposes the [exif-orientation](https://www.npmjs.com/package/exif-orientation) function in case you want to handle that manually.

## License

MIT, see [LICENSE.md](http://github.com/Jam3/exif-orientation-image/blob/master/LICENSE.md) for details.

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