Skip to main content
johnrellis
Legend
May 13, 2021
In Development

P: Correct copying of crops and local adjustments

  • May 13, 2021
  • 30 replies
  • 5294 views

[This version of the post from the old feedback forum was updated 11/1/21.]

 

Lightroom has long incorrectly copied crops and local adjustments between photos with different orientations. This post provides consistent principles of how copying should behave, test results of the current broken behavior, and a guide to implementing correct behavior.

 

How Copying Crops and Adjustments Should Behave

 

Users almost always place crops and local adjustments relative to the photo's content. A Spot Removal is placed over a blemish on a face; an Adjustment Brush lightens the shadows under eyes; a crop is placed tightly around a face; a Graduated Filter darkens the sky.

 

So if a user copies a crop or local adjustment from a raw to a TIFF produced from that raw by Photoshop, the user expects the adjustment to appear in the exact same visual position and have the same effect. A Graduated Filter aligned with the horizon in the raw should also be aligned with the horizon in the TIFF; a Spot Removal applied to a face blemish in the raw should be located on that blemish in the TIFF.

 

Problems

 

When a user edits a portrait raw in Photoshop, the saved TIFF will appear portrait. But internally, the orientations of the two photos are different – the raw pixels are stored in landscape with an orientation tag indicating a 90-degree rotation, while the TIFF pixels are stored in portrait with an orientation tag indicating no rotation.

 

When a user copies a crop or local adjustment between photos with different orientations or crops, LR usually copies the crop or adjustment incorrectly, placing it in the wrong location and with the wrong size. The precise behavior of LR has varied across versions, but it's never come close to being completely correct. 

 

I've done extensive testing of copying between orientations and crops, and the most recent results for LR 11.0 are posted below:
https://community.adobe.com/t5/lightroom-classic-ideas/lightroom-correct-copying-of-crops-and-local-adjustments-of-virtual-copies/idc-p/12489948#M13017

 

There hasn't been much change from LR 10.3, though LR 11 did fix one important use-case, copying adjustments between masters and their virtual copies.

 

Implementing the Desired Behavior

 

Implementing the desired behavior is straightforward, requiring elementary coordinate transformations from the source to destination photos. I've implemented these transformations for my Copy Settings, Any Crop, and Any Filter plugins, and I've posted the source code for Copy Settings plugin.

 

Internally, LR represents a photo as an underlying image (an array of pixels) and an "orientation" tag, which specifies how much the underlying image should be rotated (0, 90, 180, 270 degrees) and whether it should be mirrored to display it visually. Rotating or flipping an image in LR changes just the orientation tag. But when you edit a photo in Photoshop, it actually rotates and mirrors the pixels in the underlying image as specified by the orientation, and the saved TIFF will then have an orientation tag with no rotation or mirroring.

 

LR represents the coordinates of crops and local adjustments with values in [0..1], where (0, 0) represents the upper-left corner of the underlying image before any orientation (rotation and mirroring) has been applied. Call this coordinate system the underlying-pixels coordinates. Call the coordinate system after the orientation has been applied the visible-pixels coordinates.

 

When copying, LR should translate the underlying-pixel coordinates of the adjustments in the source image to visible coordinates. Then it should translate those visible coordinates to the underlying pixel coordinates of the target photo.

 

30 replies

Participant
August 1, 2023

The sync function for copying Crop, Lens Correction and Transform effects has never worked properly with photos in portrait orientation. 

I am an interior photographer and often shoot multiple exposures and then do overlays in PS.  When working the photos in LR I always apply Lens Correction, Transform and crop to get the desired frame.  For some reason, when the photo is a portrait photo, the sync function does not line the photos up the same way.  In fact, the values are not even copied over to the next photo(s) accurately.   It works perfectly for photos in landscape format but has always had a bug with syncing two (or more) photos in portrait format.   Very frustrating.

johnrellis
Legend
August 1, 2023

These bugs have been long-standing, and Adobe  has not made it a priority to fix them:

https://johnrellis.com/lightroom/copysettings.htm#longstandingbugs

 

While waiting for the next ice age, you'll have to use the Copy Settings plugin to correctly copy settings between portrait raws and TIFFs/PSDs/JPEGs created from those raws.

 

johnrellis
Legend
October 10, 2022

@vertizonphoto1, while waiting for Adobe to fix this very old bug, try the Copy Settings plugin.

Participating Frequently
October 10, 2022

USe case: I have to stop motion animations to edit, each about 450 images. Occasionally, with the camera mounted high above on a crossbar, it interprets the orientation wrong and I rotate the images back to landscape. Fast forward to editing and wanting to apply a linear exposure gradient on all 450 images. Result: Total junk show. MASSIVE waste of time for a professional workflow. Why can't the application of masks simply be independent of historic metadata? If I copy and paste a vertical gradient from the left, it should remain a vertical gradient on the left when syncing masks, otherwise it is not syncing at all.   Now back to my massive waste of time. Something that shoudl take less than a minute in now taking hours. 

C.Cella
Inspiring
May 19, 2022

So basically Mask Presets with Ai are the only one usable at any crop.

Mask Presets containing Gradients and Brush will be usable only on photos with the same aspect ratio as the photo in which they have been created.

 

Presetting masks is basically half broken.

 

@johnrellis 

 

Not sure if possible but the solution to this mess would be to use Copy Settings to apply Mask Presets and since you do the "calculations" right the Mask Presets will be applied correctly and non distorted.

 

.

 

C.Cella
Inspiring
May 19, 2022

Mask Presets are also apllied incorrectly/distorted IF the crop of the destination photo differs from the crop of the photo where said Mask Presets where created.

 

 

johnrellis
Legend
April 13, 2022

I reran the test suite on LR 11.3, and there was no change from 11.1.

johnrellis
Legend
December 18, 2021

I reran my test suite on LR 11.1, and unfortunately, I don't see any improvements :-<

 

The suite can be downloaded from here:
https://www.dropbox.com/s/ayr602oegx3ofrr/Copy%20Settings%20test%20suite.2021.10.31.zip?dl=0

 

In the tables below, the Source and Target representations are:

 

N - the photo is in normal orientation, with no rotation or mirroring (orientation AB)
C - same as N but with a crop applied, including a crop angle
R - the photo has been rotated clockwise (orientation BC)
RC - the photo has been rotated clockwise, with the same crop as C applied
RCM - the photo has been rotated clockwise and mirrored (flipped horizontal), with the same crop as C applied (orientation CB)

 

U - the tested adjustment has not been saved to metadata in the source photo

S - the tested adjustment has been saved to metadata in the source photo

 

The adjustments tested are:

 

Crop - a crop with a crop angle
Spot - a spot removal using Clone, with the source automatically selected
Graduated - a graduated filter (linear gradient), at angle (now called Linear Gradient in LR 11)
Radial - a radial filter (radial gradient), at angle (now called Radial Gradient in LR 11)
Up-Mode - Transform > Auto, copying Upright Mode
Up-Transforms - Transform > Auto, copying Upright Transforms
Tr-Adjustments - copying manual Transform adjustments (now called Manual Transform [sic] in LR 11)

 

The first table shows the results of the suite with LR 11.1. Red cells indicate source/target/adjustments that didn't copy correctly.

 

The second table shows the difference between LR 11.1 and 11.0. Red cells indicate source/target/adjustments that don't work in LR 11.1 but worked in 11.0. Green cells indicate source/target/adjustments that work in LR 11.1 but didn't work in 11.0. There are 5 red cells and 1 green cell -- so very little change.

 

 

 

 

Rikk Flohr_Photography
Community Manager
Community Manager
December 14, 2021

Updates to the Adobe Photography Products were released today and contain improvements to this issue. Please install the update via your Creative Cloud Desktop App or your respective App Store. 

 

Note: 

You may need to refresh the Creative Cloud App for desktop software to show an update available.  ([Ctrl/Cmd]+[Alt/Opt]+ [ R ])

For Mobile downloads, it may take several days for the update to appear in your respective App Stores.

 

Thank you for your patience. 

Rikk Flohr: Adobe Photography Org
johnrellis
Legend
November 21, 2021

I released a new version of the Copy Settings plugin that works with LR 11. As a bonus, it includes the Invert Mask command, which does what it says.

johnrellis
Legend
November 1, 2021

Oh, that got accidentally omitted:

 

U - the tested adjustment has not been saved to metadata in the source photo

S - the tested adjustment has been saved to metadata in the source photo

 

(I just edited the updated results above to include that.)