Skip to content
forked from hMatoba/piexifjs

Read and modify exif in client-side or server-side JavaScript.

License

Notifications You must be signed in to change notification settings

holwech/piexif-ts

This branch is 201 commits ahead of, 7 commits behind hMatoba/piexifjs:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4e5ba0b · Mar 10, 2024
Mar 10, 2024
Oct 23, 2019
May 10, 2019
Mar 10, 2024
Oct 23, 2019
Oct 23, 2019
Oct 23, 2019
Mar 17, 2015
Oct 23, 2019
Oct 23, 2019
Oct 23, 2019
Mar 17, 2015
Nov 17, 2019
Oct 27, 2018
May 10, 2019
May 10, 2019
Mar 10, 2024
Mar 10, 2024
Oct 23, 2019
Oct 23, 2019

Repository files navigation

Piexif-ts

Actions Status

This repository is forked from piexifjs and all praise should go to the creator of this great library.

Fix of the Typescript version of the original 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:

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.

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

Read the Docs

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.

About

Read and modify exif in client-side or server-side JavaScript.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 87.6%
  • JavaScript 12.4%