Ashampoo XMP Core v0.2 is available :partying_face...
# feed
s
Ashampoo XMP Core v0.2 is available 🥳 This library is a port of Adobe's XMP SDK to Kotlin Multiplatform by Ashampoo. The new release adds some convenience functions to
XMPMeta
for commonly used properties. For example you can now use
XMPMeta.getOrientation()
as a shortcut to
XMPMeta.getPropertyInteger(XMPConst.NS_TIFF, "Orientation")
. Also
XMPMeta.getKeywords()
and
XMPMeta.setKeywords(keywords: Set<String>)
might save you some time. Check it out: https://github.com/Ashampoo/xmpcore
🎉 7
K 1
m
Would be nice for the Readme to mention what it is. It says it’s a port of some other library by Adobe, but for people who never used it, it’s unclear what this does. (Nowhere does it say what is “XMP”)
👍 1
s
@Marcin Wisniowski Thank you for your feedback. I will see to add a paragraph that explains XMP. Maybe a short description and a link to https://en.wikipedia.org/wiki/Extensible_Metadata_Platform Basically it’s a XML format that defines image metadata which was invented by Adobe to replace EXIF & IPTC. But as always when you invent a new format to replace another it’s just one format more in the end. So today image metadata consists of EXIF (TIFF like, very old), IPTC (known as Photoshop Metadata) & XMP Take a look at an example XMP file:
Copy code
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Ashampoo XMP Core 1.4.0">
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    <rdf:Description rdf:about=""
        xmlns:MY="http://ns.mylollc.com/MyloEdit/"
        xmlns:acdsee="http://ns.acdsee.com/iptc/1.0/"
        xmlns:ashampoo="http://ns.ashampoo.com/xmp/1.0/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:exif="http://ns.adobe.com/exif/1.0/"
        xmlns:mwg-rs="http://www.metadataworkinggroup.com/schemas/regions/"
        xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
        xmlns:stArea="http://ns.adobe.com/xmp/sType/Area#"
        xmlns:narrative="http://ns.narrative.so/narrative_select/1.0/"
        xmlns:xmp="http://ns.adobe.com/xap/1.0/"
        xmlns:xmpDM="http://ns.adobe.com/xmp/1.0/DynamicMedia/"
      MY:flag="true"
      acdsee:tagged="True"
      exif:DateTimeOriginal="2023-07-07T13:37:42"
      exif:GPSLatitude="53,13.1635N"
      exif:GPSLongitude="8,14.3797E"
      exif:GPSVersionID="2.3.0.0"
      narrative:Tagged="True"
      xmp:Rating="3"
      xmpDM:pick="1">
      <ashampoo:albums>
        <rdf:Bag>
          <rdf:li>America trip</rdf:li>
          <rdf:li>My wedding</rdf:li>
        </rdf:Bag>
      </ashampoo:albums>
      <dc:subject>
        <rdf:Bag>
          <rdf:li>bird</rdf:li>
          <rdf:li>cat</rdf:li>
          <rdf:li>dog</rdf:li>
        </rdf:Bag>
      </dc:subject>
      <mwg-rs:Regions rdf:parseType="Resource">
        <mwg-rs:AppliedToDimensions
          stDim:h="1000"
          stDim:unit="pixel"
          stDim:w="1500"/>
        <mwg-rs:RegionList>
          <rdf:Bag>
            <rdf:li>
              <rdf:Description
                mwg-rs:Name="Eye Left"
                mwg-rs:Type="Face">
              <mwg-rs:Area
                stArea:h="0.05"
                stArea:unit="normalized"
                stArea:w="0.033245"
                stArea:x="0.295179"
                stArea:y="0.27888"/>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description
                mwg-rs:Name="Eye Right"
                mwg-rs:Type="Face">
              <mwg-rs:Area
                stArea:h="0.05"
                stArea:unit="normalized"
                stArea:w="0.033245"
                stArea:x="0.81499"
                stArea:y="0.472579"/>
              </rdf:Description>
            </rdf:li>
            <rdf:li>
              <rdf:Description
                mwg-rs:Name="Nothing"
                mwg-rs:Type="Face">
              <mwg-rs:Area
                stArea:h="0.05"
                stArea:unit="normalized"
                stArea:w="0.033245"
                stArea:x="0.501552"
                stArea:y="0.905484"/>
              </rdf:Description>
            </rdf:li>
          </rdf:Bag>
        </mwg-rs:RegionList>
      </mwg-rs:Regions>
    </rdf:Description>
  </rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
m
Thank you, that makes perfect sense now!