Jump to content
Our response time is longer than usual currently. We're working to answer users as quickly as possible and thank you for your continued patience.

Can Affinity Photo read .xmp files created by Adobe Camera Raw?


Recommended Posts

I downloaded Affinity Photo last year (2017) after my Adobe PS+LR subscription expired. AP has been great, but there’s one thing I’d love AP to implement. I have many RAW files that I previously processed with Adobe Camera Raw or Lightroom. These RAW files have the sidecar .xmp files, which contain information on all the edits I made in ACR. Though uncommon, there are times when I’d like to export or convert a RAW to a JPEG without re-editing them, and simply use the edits I’d made in ACR. But since I can no longer use any of Adobe's programs, I can’t use them to process these files. Does AP have the option to read .xmp files and apply these edits?

Edited by timcorinphoto
Updated info and clarified details.
Link to comment
Share on other sites

  • Moderators

Hi Tim and Welcome to the Forums,

 

At the moment it's not possible for Affinity to read xmp sidecar files.  It's been requested a number of times and i do believe is something the Dev team want to add in a future update.

Link to comment
Share on other sites

  • 2 months later...
  • 1 month later...
  • 2 weeks later...
  • 2 weeks later...

Is it realistic to expect AP, or any non-Adobe application for that matter, to read Lightroom xmp files?  Wouldn't this require AP to duplicate what Adobe Camera Raw (ACR) does?  That would mean either licensing or reverse-engineering ACR.  Adobe doesn't license ACR separately, as far as I know, and reverse-engineering ACR might violate patents.

Link to comment
Share on other sites

2 hours ago, kg415 said:

Is it realistic to expect AP, or any non-Adobe application for that matter, to read Lightroom xmp files?  

XMP files are just text - there are several third party programs that can read them.

AP, AD & APub user, running Win10

Link to comment
Share on other sites

By "read", I mean reading and *(non-destructively) applying* any edits made to the image in Lightroom's Develop module -- that's what I'd need in any true Lightroom/Photoshop replacement. That's what allows LR to launch PS to edit a RAW file, for example.

Link to comment
Share on other sites

@kg415 you're right. Being able to read and apply ACR edits would be pretty much the same as creating a copy of ACR itself. I never considered it that way. Maybe it’s time to hit the Adobe forums and see if they have any free solutions instead. On another note, I’ve been touring Australia and haven’t had power, so don’t use my computer or AP as often as I’d like to. Might be time to get AP on my iPad... cheers.

Link to comment
Share on other sites

3 minutes ago, timcorinphoto said:

Maybe it’s time to hit the Adobe forums and see if they have any free solutions instead.

I've not been able to find anything on the Adobe forums or elsewhere.  It looks like ACDSee Ultimate 2018 can import ratings, labels, collections, and keywords from a Lightroom catalog, but not image edits.

Link to comment
Share on other sites

10 hours ago, kg415 said:

By "read", I mean reading and *(non-destructively) applying* any edits made to the image in Lightroom's Develop module -- that's what I'd need in any true Lightroom/Photoshop replacement. That's what allows LR to launch PS to edit a RAW file, for example.

I understood that :).  But as I understand XMP files they're just specifying the values of a number of variables (I assume) as the differences from their current values.  The trick then is to apply those changes.  Although XMP was created by Adobe it's now an ISO standard, so there's no need to start reverse engineering or searching user forums.

AP, AD & APub user, running Win10

Link to comment
Share on other sites

2 hours ago, IanSG said:

But as I understand XMP files they're just specifying the values of a number of variables (I assume) as the differences from their current values. 

I am not so sure that is a safe assumption. From the Wikipedia article there is this:

Quote

The defined XMP data model can be used to store any set of metadata properties. These can be simple name-value pairs, structured values or lists of values. The data can be nested as well.

 

From what I can gather from various sources (but am far from sure about), XMP sidecar files can use proprietary data structures that are not publicly documented, so at least some reverse engineering may be required just to parse them, much less to understand their function or how to apply them.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

3 minutes ago, R C-R said:

I am not so sure that is a safe assumption. From the Wikipedia article there is this:

Good point!  I'm fairly sure I've read something that would suggest the edits are being stored as name-value pairs - my assumption was that the values are a plus / minus change from the original since I don't know how something like exposure or contrast would be expressed as an absolute value.  I didn't mean to imply that all metadata could be stored like that.

 

10 minutes ago, R C-R said:

From what I can gather from various sources (but am far from sure about), XMP sidecar files can use proprietary data structures that are not publicly documented, so at least some reverse engineering may be required just to parse them, much less to understand their function or how to apply them.

I think this comes down to context.  XMP is intended to cover a lot more than just tracking image edits - it's not unreasonable that some metadata will be in a proprietary format.  I suppose the question is "what is LR doing?".  Given that there are third party programs like Fast Raw Viewer that can write edits as XMP files which are then applied in LR, I think it's reasonable to assume the format is well known.  

AP, AD & APub user, running Win10

Link to comment
Share on other sites

Just look inside and you will know what data is written into it ...

<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.5-c002 1.148022, 2012/07/15-18:06:45        ">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
    xmlns:exif="http://ns.adobe.com/exif/1.0/"
    xmlns:aux="http://ns.adobe.com/exif/1.0/aux/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
    xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/"
   xmp:Rating="0"
   xmp:CreatorTool="Ver.1.20"
   xmp:ModifyDate="2016-02-07T17:17:01.00"
   xmp:CreateDate="2016-02-07T17:17:01.00"
   xmp:MetadataDate="2018-01-06T16:05:54+01:00"
   tiff:Make="NIKON CORPORATION"
   tiff:Model="NIKON 1 V1"
   tiff:Orientation="1"
   exif:ExifVersion="0221"
   exif:ExposureTime="1/200"
   exif:ShutterSpeedValue="7643856/1000000"
   exif:FNumber="18/10"
   exif:ApertureValue="1695994/1000000"
   exif:ExposureProgram="2"
   exif:SensitivityType="2"
   exif:ExposureBiasValue="0/6"
   exif:MaxApertureValue="16/10"
   exif:MeteringMode="5"
   exif:LightSource="0"
   exif:FocalLength="185/10"
   exif:SensingMethod="2"
   exif:FileSource="3"
   exif:SceneType="1"
   exif:FocalLengthIn35mmFilm="49"
   exif:CustomRendered="0"
   exif:ExposureMode="0"
   exif:WhiteBalance="0"
   exif:SceneCaptureType="0"
   exif:GainControl="1"
   exif:Contrast="0"
   exif:Saturation="0"
   exif:Sharpness="0"
   exif:SubjectDistanceRange="0"
   exif:DigitalZoomRatio="1/1"
   exif:DateTimeOriginal="2016-02-07T17:17:01.00"
   aux:SerialNumber="61030409"
   aux:LensInfo="185/10 185/10 18/10 18/10"
   aux:Lens="1 NIKKOR 18.5mm f/1.8"
   aux:ImageNumber="6655"
   aux:ApproximateFocusDistance="237/10"
   photoshop:DateCreated="2016-02-07T17:17:01.00"
   photoshop:SidecarForExtension="NEF"
   photoshop:EmbeddedXMPDigest="6B24772DD9E8ED1BBDB3FE3CB906CFD0"
   xmpMM:DocumentID="EC10D879093FF7FCDFD242015959FF08"
   xmpMM:OriginalDocumentID="EC10D879093FF7FCDFD242015959FF08"
   xmpMM:InstanceID="xmp.iid:56066746-3e36-42e7-8a92-ea7b2eaff44a"
   dc:format="image/x-nikon-nef"
   crs:RawFileName="DSC_6749.NEF"
   crs:Version="8.5"
   crs:ProcessVersion="6.7"
   crs:WhiteBalance="As Shot"
   crs:AutoWhiteVersion="134348800"
   crs:Temperature="5400"
   crs:Tint="-13"
   crs:Saturation="0"
   crs:Sharpness="25"
   crs:LuminanceSmoothing="0"
   crs:ColorNoiseReduction="25"
   crs:VignetteAmount="0"
   crs:ShadowTint="0"
   crs:RedHue="0"
   crs:RedSaturation="0"
   crs:GreenHue="0"
   crs:GreenSaturation="0"
   crs:BlueHue="0"
   crs:BlueSaturation="0"
   crs:Vibrance="0"
   crs:HueAdjustmentRed="0"
   crs:HueAdjustmentOrange="0"
   crs:HueAdjustmentYellow="0"
   crs:HueAdjustmentGreen="0"
   crs:HueAdjustmentAqua="0"
   crs:HueAdjustmentBlue="0"
   crs:HueAdjustmentPurple="0"
   crs:HueAdjustmentMagenta="0"
   crs:SaturationAdjustmentRed="0"
   crs:SaturationAdjustmentOrange="0"
   crs:SaturationAdjustmentYellow="0"
   crs:SaturationAdjustmentGreen="0"
   crs:SaturationAdjustmentAqua="0"
   crs:SaturationAdjustmentBlue="0"
   crs:SaturationAdjustmentPurple="0"
   crs:SaturationAdjustmentMagenta="0"
   crs:LuminanceAdjustmentRed="0"
   crs:LuminanceAdjustmentOrange="0"
   crs:LuminanceAdjustmentYellow="0"
   crs:LuminanceAdjustmentGreen="0"
   crs:LuminanceAdjustmentAqua="0"
   crs:LuminanceAdjustmentBlue="0"
   crs:LuminanceAdjustmentPurple="0"
   crs:LuminanceAdjustmentMagenta="0"
   crs:SplitToningShadowHue="0"
   crs:SplitToningShadowSaturation="0"
   crs:SplitToningHighlightHue="0"
   crs:SplitToningHighlightSaturation="0"
   crs:SplitToningBalance="0"
   crs:ParametricShadows="0"
   crs:ParametricDarks="0"
   crs:ParametricLights="0"
   crs:ParametricHighlights="0"
   crs:ParametricShadowSplit="25"
   crs:ParametricMidtoneSplit="50"
   crs:ParametricHighlightSplit="75"
   crs:SharpenRadius="+1.0"
   crs:SharpenDetail="25"
   crs:SharpenEdgeMasking="0"
   crs:PostCropVignetteAmount="0"
   crs:GrainAmount="0"
   crs:ColorNoiseReductionDetail="50"
   crs:ColorNoiseReductionSmoothness="50"
   crs:LensProfileEnable="0"
   crs:LensManualDistortionAmount="0"
   crs:PerspectiveVertical="0"
   crs:PerspectiveHorizontal="0"
   crs:PerspectiveRotate="0.0"
   crs:PerspectiveScale="100"
   crs:PerspectiveAspect="0"
   crs:PerspectiveUpright="0"
   crs:AutoLateralCA="0"
   crs:Exposure2012="0.00"
   crs:Contrast2012="0"
   crs:Highlights2012="0"
   crs:Shadows2012="0"
   crs:Whites2012="0"
   crs:Blacks2012="0"
   crs:Clarity2012="0"
   crs:DefringePurpleAmount="0"
   crs:DefringePurpleHueLo="30"
   crs:DefringePurpleHueHi="70"
   crs:DefringeGreenAmount="0"
   crs:DefringeGreenHueLo="40"
   crs:DefringeGreenHueHi="60"
   crs:ConvertToGrayscale="False"
   crs:ToneCurveName="Medium Contrast"
   crs:ToneCurveName2012="Linear"
   crs:CameraProfile="Adobe Standard"
   crs:CameraProfileDigest="286B4213DCF05BD787E0B5AAC535BFE0"
   crs:LensProfileSetup="LensDefaults"
   crs:HasSettings="True"
   crs:HasCrop="False"
   crs:AlreadyApplied="False">
   <exif:ISOSpeedRatings>
    <rdf:Seq>
     <rdf:li>400</rdf:li>
    </rdf:Seq>
   </exif:ISOSpeedRatings>
   <exif:Flash
    exif:Fired="False"
    exif:Return="0"
    exif:Mode="0"
    exif:Function="False"
    exif:RedEyeMode="False"/>
   <xmpMM:History>
    <rdf:Seq>
     <rdf:li
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:93f7d1bf-c746-4c54-8a1b-90385653f3a0"
      stEvt:when="2018-01-02T04:33:53+01:00"
      stEvt:softwareAgent="Adobe Photoshop Camera Raw 8.5 (Macintosh)"
      stEvt:changed="/metadata"/>
     <rdf:li
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:56066746-3e36-42e7-8a92-ea7b2eaff44a"
      stEvt:when="2018-01-06T16:05:54+01:00"
      stEvt:softwareAgent="Adobe Photoshop Camera Raw 8.5 (Macintosh)"
      stEvt:changed="/metadata"/>
    </rdf:Seq>
   </xmpMM:History>
   <crs:ToneCurve>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>32, 22</rdf:li>
     <rdf:li>64, 56</rdf:li>
     <rdf:li>128, 128</rdf:li>
     <rdf:li>192, 196</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurve>
   <crs:ToneCurveRed>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurveRed>
   <crs:ToneCurveGreen>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurveGreen>
   <crs:ToneCurveBlue>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurveBlue>
   <crs:ToneCurvePV2012>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012>
   <crs:ToneCurvePV2012Red>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012Red>
   <crs:ToneCurvePV2012Green>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012Green>
   <crs:ToneCurvePV2012Blue>
    <rdf:Seq>
     <rdf:li>0, 0</rdf:li>
     <rdf:li>255, 255</rdf:li>
    </rdf:Seq>
   </crs:ToneCurvePV2012Blue>
  </rdf:Description>
 </rdf:RDF>
</x:xmpmeta>

 

☛ Affinity Designer 1.10.5 ◆ Affinity Photo 1.10.5 ◆ OSX El Capitan

Link to comment
Share on other sites

This is an ACR sidecar file which is created when you develop a RAW image (a Nikon NEF in this case) inside of PS/PSE with the help of the associated ACR converting tool for processing camera RAW files. - Pretty similar in overall operation here like AP is using the develop persona when throwing a RAW file on AP for development.

☛ Affinity Designer 1.10.5 ◆ Affinity Photo 1.10.5 ◆ OSX El Capitan

Link to comment
Share on other sites

4 hours ago, IanSG said:

I got that, but can I assume the files are only written if the image is changed?

Maybe more relevant here is how the XMP sidecar file tracks changes made by different apps & how to keep it synced & up-to-date. I could find surprisingly little info about it (that I could understand), but what I did find was not encouraging. For example, Adobe's Reconciling metadata in different formats refers to a "conceptual programming model" but then says the "XMP specification does not require applications that support XMP to follow this specific model."

 

I thought perhaps the change info might be fully specified in an easily accessible way in the <xmpMM:History> properties but from what I could glean from this Evix2.org page, apparently not.

Affinity Photo 1.10.5, Affinity Designer 1.10.5, Affinity Publisher 1.10.5;  2020 iMac 27"; 3.8GHz i7, Radeon Pro 5700, 32GB RAM; macOS 10.15.7
Affinity Photo 
1.10.5.280 & Affinity Designer 1.10.5 for iPad; 6th Generation iPad 32 GB; Apple Pencil; iPadOS 15.7

Link to comment
Share on other sites

Here is a quote from this interesting thread:

 

https://photo.stackexchange.com/questions/86224/is-there-any-way-of-achieving-cross-application-non-destructive-raw-editing-ma

 

Quote

 

Reasoning behind choosing Lightroom and Camera Raw

Futureproofing

Adobe products have become pretty much the industry standard and as such:

  1. Competitors will have to lure existing Adobe customers into their own ecosystems. A few are already attempting reproducing (subset of) the adjustments that ACR stores inside the .xmp files. For instance the open source project Darktable is claiming accurate reproduction of crop,rotation,flip and tags, and mostly accurate reproduction of exposure/blacks, grain, tone curve (only lightness supported), color zones local contrast - as seen here and here. Others imply that you can migrate whole lightroom libraries including the adjustments (Capture One Pro claims that it "allows import of other 3rd party application catalogs to make migration easier than ever, maintaining folder structures and most adjustments on your images" accompanied by a picture showing Aperture, Lightroom and Media Pro as seen here. On1 Photo RAW supposedly will be adding support for that in March 2017 - for more read here, here and the timeline here). While these attempts can never be 100% accurate, they are accurate enough to give a starting point for further image manipulation and/or at the very least underline an interest by 3rd parties to figuratively-speaking reverse engineer Lightroom's and ACRs ways of storing adjustments.


 

 

Some of these adjustments are simple, e.g. crop and exposure adjustments, others are very complicated, e.g. ACR noise reduction and adjustment brush strokes.  Reverse-engineering these doesn't seem straightforward, and doing so might infringe patents, yes?

 

Link to comment
Share on other sites

Take a look at "Introduction to Camera Raw" this shows some of the things it does in short. Since ACR is Adobe's child and also contains the „Adobe Color Engine“ (ACE) Plug-In for color management handling etc. most parts of it will be covered by an appropriate Adobe software license. So far only Adobe products like Photoshop, Lightroom, After Effects and Bridge do usually use ACR here, other software uses instead Adobe's open DNG format and converter.

Related to ACR noise reduction and adjustment brush strokes etc. they just have to read and interpret the XMP data values and assign these then adjusted to their own functional implementations of such features in a similar behaving fashion.

☛ Affinity Designer 1.10.5 ◆ Affinity Photo 1.10.5 ◆ OSX El Capitan

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...

Important Information

Please note there is currently a delay in replying to some post. See pinned thread in the Questions forum. These are the Terms of Use you will be asked to agree to if you join the forum. | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.