Gathering detailed insights and metrics for ts-exif-parser
Gathering detailed insights and metrics for ts-exif-parser
Gathering detailed insights and metrics for ts-exif-parser
Gathering detailed insights and metrics for ts-exif-parser
exif-parser
A javascript library to extract Exif metadata from images, in node and in the browser.
blueimp-load-image
JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled, cropped or rotated HTML img or canvas element. It also provides methods to parse image metadata to extract IPTC and Exif tags a
get-orientation
Get orientation from image file
jpeg-exif
Use for parse .jpg file exif info (including GPS info.).
npm install ts-exif-parser
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
30 Stars
122 Commits
7 Forks
4 Watching
4 Branches
1 Contributors
Updated on 12 Nov 2024
TypeScript (98.64%)
JavaScript (1.36%)
Cumulative downloads
Total Downloads
Last day
147.1%
771
Compared to previous day
Last week
33.3%
2,536
Compared to previous week
Last month
-4.5%
9,509
Compared to previous month
Last year
20%
133,343
Compared to previous year
1
This module is based on the exif-parser: https://github.com/bwindels/exif-parser
exif-parser is a parser for image metadata in the exif format, the most popular metadata format for jpeg and tiff images. It is written in pure javascript and has no external dependencies. It can also get the size of jpeg images and the size of the jpeg thumbnail embedded in the exif data. It can also extract the embedded thumbnail image.
npm install ts-exif-parser
You can also build a browser bundle to include it with a <script>
tag in a HTML document, like this:
git clone git@github.com:bpatrik/ts-exif-parser.git
cd exif-parser/
make build-browser-bundle
To start parsing exif data, create a new parser like below. Note that the buffer you pass does not have to be the buffer for the full jpeg file. The exif section of a jpeg file has a maximum size of 65535 bytes and the section seems to always occur within the first 100 bytes of the file. So it is safe to only fetch the first 65635 bytes of a jpeg file and pass those to the parser.
The buffer you pass to create can be a node buffer or a DOM ArrayBuffer.
1import {ExifParserFactory} from "ts-exif-parser"; 2const parser = ExifParserFactory.create(data); 3const Data = ExifParserFactory.create(data).parse();
Before calling parse, you can set a number of flags on the parser, telling it how to behave while parsing.
Add fields in the binary format to result. Since these fields are mostly used for internal fields like Padding, you generally are not interested in these. If enabled, values for these fields will be a Buffer object in node or an ArrayBuffer in DOM environments (browsers).
parser.enableBinaryFields([boolean]), default false;
EXIF tags are organized into different sections, and to tell you the offset to other sections, EXIF uses certain tags. These tags don't tell you anything about the image, but are more for parsers to find out about all tags. Hence, these "pointer" fields are not included in the result tags field by default. Change this flag to include them nonetheless.
parser.enablePointers([boolean]), default false;
Resolve tags to their textual name, making result.tags a dictonary object instead of an array with the tag objects with no textual tag name.
parser.enableTagNames([boolean]), default true;
Read the image size while parsing.
parser.enableImageSize([boolean]), default true;
Read the EXIF tags. Could be useful to disable if you only want to read the image size.
parser.enableReturnTags([boolean]), default true;
EXIF values can be represented in a number of formats (fractions, degrees, arrays, ...) with different precision. Enabling this tries to cast values as much as possible to the appropriate javascript types like number, Date.
parser.enableSimpleValues([boolean]), default true;
the tags that were found while parsing are stored in result.tags
unless you set parser.enableReturnTags(false)
. If parser.enableTagNames
is set to true, result.tags
will be an object with the key being the tag name and the value being the tag value. If parser.enableTagNames
is set to false, result.tags
will be an array of objects containing section, type and value properties.
If parser.enableImageSize
is set to true, result.getImageSize()
will give you the image size as an object with width and height properties.
You can check if there is a thumbnail present in the exif data with result.hasThumbnail()
. Exif supports thumbnails is jpeg and tiff format, though most are in jpeg format. You can check if there is a thumbnail present in a give format by passing the mime type: result.hasThumbnail("image/jpeg")
.
You can also get the image size of the thumbnail as an object with width and height properties: result.getThumbnailSize()
.
To get the node buffer or arraybuffer containing just the thumbnail, call result.getThumbnailBuffer()
1npm test
When installed, you'll find the browser bundle in node_modules/ts-exif-parser/dist/umd/ts-exif-parser.js
. It's a non minified file. So you must minify it yourself to fit your needs.
This bundle provides a TsExifParser
global variable.
1var parser = TsExifParser.ExifParserFactory.create(data); 2var Data = TsExifParser.ExifParserFactory.create(data).parse();
I welcome external contributions through pull requests.
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
Found 7/18 approved changesets -- score normalized to 3
Reason
8 existing vulnerabilities detected
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
branch protection not enabled on development/release branches
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Score
Last Scanned on 2024-11-25
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More