# piexif-ts

> Read and write exif with typescript!

Latest version **2.1.0** (published 2024-03-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install piexif-ts
pnpm add piexif-ts
yarn add piexif-ts
bun add piexif-ts
```

## Health

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

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

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.1.0 |
| Published | 2024-03-10 |
| First published | 2019-05-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 242 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 17 |
| Author | hMatoba, Joachim Holwech |
| Maintainers | holwech |
| Keywords | jpeg, exif, node, browser |

## Links

- npm: https://www.npmjs.com/package/piexif-ts
- Repository: https://github.com/holwech/piexif-ts
- Issues: https://github.com/holwech/piexif-ts/issues
- npm.io page: https://npm.io/package/piexif-ts

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 2.1.0 (latest) — 2024-03-10
- 2.0.16 — 2019-10-23
- 2.0.15 — 2019-10-23
- 2.0.14 — 2019-10-22
- 2.0.13 — 2019-10-16
- 2.0.12 — 2019-06-06
- 2.0.11 — 2019-06-06
- 2.0.10 — 2019-05-10
- 2.0.8 — 2019-05-09

## README

Piexif-ts
========

[![Actions Status](https://github.com/{holwech}/{piexif-ts}/workflows/{main.yml}/badge.svg)](https://github.com/{holwech}/{piexif-ts}/actions)

This repository is forked from [piexifjs](https://github.com/hMatoba/piexifjs) and all praise should go to the creator of this great library.

Fix of the Typescript version of the original [piexifjs](https://github.com/hMatoba/piexifjs) as I was having trouble using it. See original documentation for how to use it.

## Install
`npm i piexif-ts`

How to Use
----------

It's very similar to the javascript library, but with some slight differences. Below is an example of how you can use this:

```typescript
import piexif, { IExif, IExifElement, TagValues } from 'piexif-ts';

var file = evt.target.files[0];

var zeroth: IExifElement = {};
var exif: IExifElement = {};
var gps: IExifElement = {};
zeroth[TagValues.ImageIFD.Make] = "Make";
zeroth[TagValues.ImageIFD.XResolution] = [777, 1];
zeroth[TagValues.ImageIFD.YResolution] = [777, 1];
zeroth[TagValues.ImageIFD.Software] = "Piexifjs";
exif[TagValues.ExifIFD.DateTimeOriginal] = "2010:10:10 10:10:10";
exif[TagValues.ExifIFD.LensMake] = "LensMake";
exif[TagValues.ExifIFD.Sharpness] = 777;
exif[TagValues.ExifIFD.LensSpecification] = [[1, 1], [1, 1], [1, 1], [1, 1]];
gps[TagValues.GPSIFD.GPSVersionID] = [7, 7, 7, 7];
gps[TagValues.GPSIFD.GPSDateStamp] = "1999:99:99 99:99:99";
var exifObj: IExif = {"0th":zeroth, "Exif":exif, "GPS":gps};
var exifStr = piexif.dump(exifObj);

var reader = new FileReader();
reader.onload = function(e) {
    var inserted = piexif.insert(exifStr, e.target.result);

    var image = new Image();
    image.src = inserted;
    image.width = 200;
    var el = $("<div></div>").append(image);
    $("#resized").prepend(el);

};
reader.readAsDataURL(file);
```

Note also that in `tsconfig.json` the following setting needs to be set to `commonjs` for some reason. I am not sure why, so if someone could explain me, please do.

```json
{
...
  "compilerOptions": {
    "module": "commonjs", 
    ...
  }
}
```

[Read the Docs](https://piexifjs.readthedocs.io/en/2.0/index.html)

Dependency
----------

No dependency. Piexifjs just needs standard JavaScript environment.

Environment
-----------

Both client-side and server-side. Piexifjs is transpiled as Universal Module Definition(https://github.com/umdjs/umd).

Issues
------

Give me details. Environment, code, input, output. I can do nothing with abstract.

License
-------

This software is released under the MIT License, see LICENSE.txt.

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