Skip to content

jeremy-code/libexif-wasm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libexif-wasm

License NPM version

This library is a WebAssembly port of the libexif C library, which is used for parsing, editing, and saving EXIF metadata in images. It intends to be a faithful port of the original library and provide all of its functions and features.

Hence, it follows that the API is low-level and may not be user-friendly. Consider using one of these libraries if you are looking for a different API:

Installation

npm install libexif-wasm # npm
yarn add libexif-wasm    # yarn
pnpm add libexif-wasm    # pnpm

Usage

The library can be used in both browser environments and Node.js.

import { ExifData, ExifIfd } from "libexif-wasm";

// Get the image data
const data = await fetch("path/to/image.jpg").then((res) => res.arrayBuffer()); // Fetch API
const data = (await readFile("path/to/image.jpg")).buffer; // Node.js `fs/promises`
const data = await formData.get("file").arrayBuffer(); // FormData
const data = await file.arrayBuffer(); // File API

// Create an ExifData instance
const exifData = ExifData.from(data); // Buffer
const exifData = ExifData.newFromData(new Uint8Array(data)); // Uint8Array

exifData.dump(); // Dump all EXIF data to console
const exifEntry = exifData.getEntry("MAKE"); // Get a specific ExifEntry
console.log(`tag ${exifEntry.tag} = ${exifEntry.getValue()}`); // Print the value of the ExifEntry
const exifIfdGps = exifData.ifd[ExifIfd.GPS]; // Get the GPS IFD
// + Anything else that libexif supports

exifData.free(); // Free the memory used by the ExifData instance

For more examples, see docs/usage:

  1. Get all Exif entries

License

This project is licensed under the GNU Lesser General Public License v2.1 - see the LICENSE file for details.

This project makes heavy use of the C library libexif, which is licensed under the GNU Lesser General Public License v2.1. For more information, see libexif/libexif/COPYING in their GitHub repository.

About

JavaScript bindings for libexif compiled to WebAssembly

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published