Skip to main content
Participant
August 1, 2025
Question

(Controller API) What's going on with the crop controls?

  • August 1, 2025
  • 0 replies
  • 87 views

Hi Adobe/Lightroom team and community,

I'm working with Lightroom CC's External Controller API to build a hardware controller for photo editing. I've successfully implemented controls for most adjustment parameters using increment() and decrement() calls, but I'm running into issues with the crop parameters (cropTop, cropLeft, cropBottom, cropRight).

 

The Problem:
When I try to adjust individual crop edges setValue(), Lightroom automatically adjusts the opposite edge to maintain some internal constraint. For example:
- Incrementing cropRight also decrements cropLeft
- Incrementing cropBottom also decrements cropTop

 

 

This makes it impossible to move just one edge of the crop rectangle independently.

What I've Tried:
1. Using increment()/decrement() on individual crop parameters - this, flat out, does not work. 
2. Using setValue() to set absolute crop coordinates - this causes other parameters to change.
3. Setting all four crop parameters simultaneously to try to work around constraints - this slow, inconsistent and glitchy.

 

Current Behavior:
// Trying to expand crop to the right
cropExpandRight -> cropRight increases, cropLeft decreases automatically
// Result: the crop expands outward equally on both sides

 

What I Need:
Independent control of individual crop edges, similar to manually dragging crop handles in the
Lightroom UI, ideally:
- cropTop increment = move top edge up (expand crop upward)
- cropBottom increment = move bottom edge down (expand crop downward)
- cropLeft increment = move left edge left (expand crop leftward)
- cropRight increment = move right edge right (expand crop rightward)

 

Secondary issue:

The orientation of the crop controls seem to correspond to the original orientation of the image. In other words, if the image was rotated, the crop controls will also be rotated.

 

Questions:
1. Is this a limitation of the current API design?
2. Are there alternative API methods for independent crop edge control?
3. Could this functionality be added in a future API update?
4. Is there a different approach I should be taking?

Environment:
- Lightroom CC 8.4
- External Controller API via WebSocket
- Custom hardware controller implementation

Any insights or workarounds would be greatly appreciated! Building precise crop controls is
essential for a good hardware editing experience.

Thanks!