0 purchases
xmp
XMP #
xmp module helps to extract xmp data of the images.
It is purely written in dart, So it can be used on server as well as on client.
Table of Contents #
Installing
Usage
Imports
Read image file
Read image file from Asset Folder
Extract XMP Data
Parsed XMP Result
Extract RAW XMP Data
Parsed RAW XMP Result
Saving Exif Content into File
Donate (Be the First one)
Lets Get Started #
1. Depend on it #
Add this to your package's pubspec.yaml file:
dependencies:
xmp:
copied to clipboard
2. Install it #
You can install packages from the command line:
with pub:
$ pub get
copied to clipboard
3. Import it #
Now in your Dart code, you can use:
import 'package:xmp/xmp.dart';
copied to clipboard
Usage #
Imports #
import 'package:xmp/xmp.dart';
copied to clipboard
Read Image File #
var file = "path_to_pre_existing_image_file/image.jpg";
var bytes = File(file).readAsBytesSync();
copied to clipboard
Read Image from Flutter's Asset Folder #
import 'package:flutter/services.dart' show ByteData, rootBundle;
/* Your blah blah code here */
ByteData data = await rootBundle.load("assets/path_to_pre_existing_image_file/image.jpg";);
var bytes = data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
copied to clipboard
Extract XMP Data #
var result = XMP.extract(bytes);
saveFile(image, result);
copied to clipboard
Parsed XMP Result #
{
"XMP Tool Kit": "Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21",
"Marked": "False",
"Web Statement": "Copyright Info URL Field",
"Location": "Sublocation Field",
"Intellectual Genre": "Intellectual Genre Field",
"Genre": "Genre Field",
"Release Date": "Release Date Field",
"Composer": "Composer Field",
"Engineer": "Engineer Field",
"....": ".....",
"....": ".....",
"....": ".....",
"................Some More XMP Data.........":".... Blah Blah Blah Values .....",
"....": ".....",
"....": ".....",
"....": ".....",
"Whites 2012": "+40",
"Blacks 2012": "-10",
"Texture": "0",
"Clarity 2012": "0",
"Dehaze": "0",
"Vibrance": "0",
"Saturation Adjustment Yellow": "0",
"Saturation Adjustment Green": "0",
"Saturation Adjustment Aqua": "0",
"Title": "Title Field",
"Description": "Caption Field",
"Creator": "Creator Field",
"Subject": [
"4K",
"Mountains",
"Sky",
"Wallpaper"
],
"Rights": "Copyright Field",
"Usage Terms": "Rights Usage Terms Field",
"Scene": [
"Scene Field",
"IPTC Scene Code Field"
],
"Subject Code": "IPTC Subject Code Field",
"Supplemental Categories": "Other Category Field",
"Property Release ID": "Release ID Field",
"Tone Curve PV 2012": [
"0, 0",
"255, 255"
],
"Tone Curve PV 2012 Red": [
"0, 0",
"255, 255"
],
"Tone Curve PV 2012 Green": [
"0, 0",
"255, 255"
],
"Tone Curve PV 2012 Blue": [
"0, 0",
"255, 255"
],
"Hierarchical Subject": [
"4K",
"Mountains",
"Sky",
"Wallpaper"
]
}
copied to clipboard
Extract RAW XMP Data #
var result = XMP.extract(bytes, raw: true);
saveFile(image, result);
copied to clipboard
Parsed RAW XMP Result #
{
"x:xmptk": "Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21",
"dc:format": "image/jpeg",
"xmpRights:Marked": "False",
"xmpRights:WebStatement": "Copyright Info URL Field",
"Iptc4xmpCore:Location": "Sublocation Field",
"Iptc4xmpCore:IntellectualGenre": "Intellectual Genre Field",
"Iptc4xmpCore:CountryCode": "BR",
"photoshop:AuthorsPosition": "Job Title Field",
"photoshop:Headline": "Headline Field",
"photoshop:CaptionWriter": "Description Writer Field",
"photoshop:Category": "Category Field",
"photoshop:DateCreated": "2020-11-01",
"photoshop:City": "City Field",
"xmp:Rating": "5",
"xmp:MetadataDate": "2020-11-01T16:00:39-03:00",
"crs:Version": "13.0",
"crs:ProcessVersion": "11.0",
"crs:WhiteBalance": "Auto",
"crs:IncrementalTemperature": "+20",
"crs:IncrementalTint": "+20",
"crs:Exposure2012": "0.00",
"crs:Contrast2012": "0",
"crs:Highlights2012": "-30",
"....": ".....",
"....": ".....",
"....": ".....",
"................Some More XMP Data.........":".... Blah Blah Blah Values .....",
"....": ".....",
"....": ".....",
"....": ".....",
"dc:subject": [
"4K",
"Mountains",
"Sky",
"Wallpaper"
],
"dc:rights": "Copyright Field",
"xmpRights:UsageTerms": "Rights Usage Terms Field",
"Iptc4xmpCore:Scene": "IPTC Scene Code Field",
"plus:ModelReleaseID": "Release Id Field",
"plus:PropertyReleaseID": "Release ID Field",
"crs:ToneCurvePV2012": [
"0, 0",
"255, 255"
],
"crs:ToneCurvePV2012Red": [
"0, 0",
"255, 255"
],
"crs:ToneCurvePV2012Green": [
"0, 0",
"255, 255"
],
"crs:ToneCurvePV2012Blue": [
"0, 0",
"255, 255"
],
"lr:hierarchicalSubject": [
"4K",
"Mountains",
"Sky",
"Wallpaper"
]
}
copied to clipboard
Saving exif content into File #
void saveFile(String fileName, dynamic exifContent) {
File('${path}$fileName.json').writeAsStringSync(jsonEncode(exifContent));
}
copied to clipboard
Also checkout our other libraries on:
Libs
Donate ❤️ #
Thanks for donating, Your donation goes towards my tuition fees!!
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.