Skip to content
An EXIF tag reader written in Dart for browser applications based on Exif.js
Dart
Branch: master
Clone or download
psiroki Merge pull request #1 from uKL/master
Added support for reading EXIF from byte array
Latest commit 40349e8 Jul 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example/vm
lib Added support for reading EXIF from byte array. Jun 28, 2019
.gitignore
CHANGELOG.md Added example, bumped version Dec 15, 2018
LICENSE Initial commit Apr 12, 2017
README.md Made exifdart be able to run in the VM and in Flutter Jul 12, 2018
analysis_options.yaml Moved to Dart 2 Aug 21, 2018
pubspec.yaml Added example, bumped version Dec 15, 2018

README.md

exifdart

Dart module to decode Exif data from jpeg files.

Dart port based on Exif.js: https://github.com/exif-js/exif-js/

Installation

Depend on it

Add this to your package's pubspec.yaml file:

dependencies:
  exifdart:

Install it

You can install packages from the command line:

$ pub get

Usage

Simple example:

// Add this to have the Rational class too:
// import "package:package:exifdart/exifdart.dart";

// We are not using that in this example, this alone will do fine:
import "package:package:exifdart/exifdart_html.dart";
import "dart:html";

/// Returns the orientation value or `null` if no EXIF or no orientation info
/// is found.
Future<int> getOrientation(Blob blob) async {
  if (blob.type == "image/jpeg") {
    Map<String, dynamic> tags = await readExifFromBlob(blob);
    return tags["Orientation"];
  }

  return null;
}

void main() {
  registerChangeHandler(document.querySelector("input[type=file]"));
}

void registerChangeHandler(InputElement input) {
  input.onChange.listen((Event e) {
    for (File f in input.files) {
      getOrientation(f).then((int orientation) {
        window.console.log("Orientation for ${f.name} is ${orientation}");
      });
    }
  });
}
You can’t perform that action at this time.