All Projects → cdcseacave → TinyEXIF

cdcseacave / TinyEXIF

Licence: other
Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to TinyEXIF

Litrato
Android photo editing app with various filters and tools. Included advanced features like masking, histogram, color picker, EXIF viewer...
Stars: ✭ 54 (-37.93%)
Mutual labels:  exif, exif-reader, exif-metadata
rexiv2
Rust library for read/write access to media-file metadata (Exif, XMP, and IPTC)
Stars: ✭ 64 (-26.44%)
Mutual labels:  exif, xmp
slack-metabot
Extract metadata (EXIF) from uploaded files on Slack
Stars: ✭ 15 (-82.76%)
Mutual labels:  exif, exif-data-extraction
exiftool-json-db
Maintain a JSON database of photos and videos with their metadata
Stars: ✭ 18 (-79.31%)
Mutual labels:  exif, xmp
Metadata Extractor
Extracts Exif, IPTC, XMP, ICC and other metadata from image, video and audio files
Stars: ✭ 1,972 (+2166.67%)
Mutual labels:  exif, xmp
pyexiv2
Read/Write metadata(including EXIF, IPTC, XMP), comment and ICC Profile embedded in digital images.
Stars: ✭ 120 (+37.93%)
Mutual labels:  exif, xmp
naturtag
Tag your nature photos with iNat taxonomy and observation metadata
Stars: ✭ 20 (-77.01%)
Mutual labels:  exif, xmp
exif-loader
Extract EXIF- & IPTC-data from your JPGs during build-time.
Stars: ✭ 14 (-83.91%)
Mutual labels:  exif, exif-data-extraction
photos2geojson
html map gallery from photos
Stars: ✭ 39 (-55.17%)
Mutual labels:  exif, exif-data-extraction
Photini
An easy to use digital photograph metadata (Exif, IPTC, XMP) editing application.
Stars: ✭ 113 (+29.89%)
Mutual labels:  exif, xmp
go-xmp
A native Go SDK for the Extensible Metadata Platform (XMP)
Stars: ✭ 36 (-58.62%)
Mutual labels:  exif, xmp
exiflibrary
A .Net Standard library for editing Exif metadata
Stars: ✭ 104 (+19.54%)
Mutual labels:  exif, exif-metadata
Elodie
An EXIF-based photo assistant, organizer, manager and workflow automation tool.
Stars: ✭ 840 (+865.52%)
Mutual labels:  exif
Exiffix
EXIF orientation correct replacement for golang's image.Decode
Stars: ✭ 19 (-78.16%)
Mutual labels:  exif
Exiftool
ExifTool meta information reader/writer
Stars: ✭ 832 (+856.32%)
Mutual labels:  exif
Exiftool Vendored.js
Fast, cross-platform Node.js access to ExifTool
Stars: ✭ 200 (+129.89%)
Mutual labels:  exif
Magick.net
The .NET library for ImageMagick
Stars: ✭ 2,071 (+2280.46%)
Mutual labels:  exif
Googlephotostakeouthelper
Script that organizes the Google Takeout archive into one big chronological folder
Stars: ✭ 740 (+750.57%)
Mutual labels:  exif
Exif Py
Easy to use Python module to extract Exif metadata from digital image files.
Stars: ✭ 561 (+544.83%)
Mutual labels:  exif
Photoview
Photo gallery for self-hosted personal servers
Stars: ✭ 553 (+535.63%)
Mutual labels:  exif

TinyEXIF: Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG

Introduction

TinyEXIF is a tiny, lightweight C++ library for parsing the metadata existing inside JPEG files. No third party dependencies are needed to parse EXIF data, however for accesing XMP data the TinyXML2 library is needed. TinyEXIF is easy to use, simply copy the two source files in you project and pass the JPEG data to EXIFInfo class. Currently common information like the camera make/model, original resolution, timestamp, focal length, lens info, F-stop/exposure time, GPS information, etc, embedded in the EXIF/XMP metadata are fetched. It is easy though to extend it and add any missing or new EXIF/XMP fields.

Usage example

#include "TinyEXIF.h"
#include <iostream> // std::cout
#include <fstream>  // std::ifstream
#include <vector>   // std::vector

int main(int argc, const char** argv) {
	if (argc != 2) {
		std::cout << "Usage: TinyEXIF <image_file>" << std::endl;
		return -1;
	}

	// open a stream to read just the necessary parts of the image file
	std::ifstream istream(argv[1], std::ifstream::binary);

	// parse image EXIF and XMP metadata
	TinyEXIF::EXIFInfo imageEXIF(istream);
	if (imageEXIF.Fields)
		std::cout
			<< "Image Description " << imageEXIF.ImageDescription << "\n"
			<< "Image Resolution " << imageEXIF.ImageWidth << "x" << imageEXIF.ImageHeight << " pixels\n"
			<< "Camera Model " << imageEXIF.Make << " - " << imageEXIF.Model << "\n"
			<< "Focal Length " << imageEXIF.FocalLength << " mm" << std::endl;
	return 0;
}

See main.cpp for more details.

Copyright

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].