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:
- exifreader by Mattias Wallander (@mattiasw) - A JavaScript Exif info parser
- exif-reader by Devon Govett (@devongovett) - A small EXIF image metadata reader
- exiftool-vendored by PhotoStructure - Fast, cross-platform Node.js access to ExifTool
npm install libexif-wasm # npm
yarn add libexif-wasm # yarn
pnpm add libexif-wasm # pnpm
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:
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.