darktable-org / darktable-org/darktable

copy/paste of liquify module does not work properly between different resolutions

Open
#17,974 5 comments 0 reactions 1 assignee View on GitHub

@ralfbrown is already working on this.

Since Feb 7, 2025.

no-issue-activity scope: image processing
Dominant language
C
Stars
13.1k
Forks
1.4k
Avg merge
22h 14m
Merged PRs (30d)
198

Description

Describe the bug

The liquify module seems to be storing the position and size of its warps as absolute pixel values rather than the usual float world coordinates. As a result, copying and pasting the liquify module between images with different pixel resolutions results in the wrong position and size in the target image (in extreme cases, the warp could be entirely off the image).

The same problem happens when making the liquify module part of a style and with module presets.

Steps to reproduce
  1. Create a point warp in the liquify module. It should be roughly centered and occupy a fair portion of the image (e.g. radius > 1/4 image height/width).
  2. copy image settings
  3. paste onto an image with a substantially different pixel resolution
  4. click the 'edit nodes' button to display yellow overlay for the node, and observe that it is not centered and occupies a differently-size portion of the image compared to the first image
Expected behavior

Warps should be at the same relative position and size when copied, as are all other drawn shapes.

Logfile | Screenshot | Screencast

No response

Commit

No response

Where did you obtain darktable from?

self compiled

darktable version

master 4.9.0+1259~g7c8ca81360

What OS are you using?

Linux

What is the version of your OS?

Mageia 9

Describe your system?

No response

Are you using OpenCL GPU in darktable?

None

If yes, what is the GPU card and driver?

No response

Please provide additional context if applicable. You can attach files too, but might need to rename to .txt or .zip

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.