xmp 1.0.3
xmp: ^1.0.3 copied to clipboard
XMP module helps to extract xmp data from images.
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 #
Lets Get Started #
1. Depend on it #
Add this to your package's pubspec.yaml
file:
dependencies:
xmp:
2. Install it #
You can install packages from the command line:
with pub
:
$ pub get
3. Import it #
Now in your Dart
code, you can use:
import 'package:xmp/xmp.dart';
Usage #
Imports #
import 'package:xmp/xmp.dart';
Read Image File #
var file = "path_to_pre_existing_image_file/image.jpg";
var bytes = File(file).readAsBytesSync();
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);
Extract XMP Data #
var result = XMP.extract(bytes);
saveFile(image, result);
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"
]
}
Extract RAW XMP Data #
var result = XMP.extract(bytes, raw: true);
saveFile(image, result);
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"
]
}
Saving exif content into File #
void saveFile(String fileName, dynamic exifContent) {
File('${path}$fileName.json').writeAsStringSync(jsonEncode(exifContent));
}
Also checkout our other libraries on:
Donate ❤️ #
Thanks for donating, Your donation goes towards my tuition fees!!