darktable
darktable copied to clipboard
Add support for uncrop/enlarge/expand canvas
Is your feature request related to a problem? Please describe.
Sometimes it would be nice to enlarge/uncrop an image to improve the composition. Example: Imagine a bird in flight shot, where the bird flies to the right and is also located on the right side of the image. This does not look great, because the bird flies out of the frame. Instead you want the bird to fly into the picture. In this case it would be nice to be able to enlarge the canvas to the right and use the retouch module to fill the added pixels.
Describe the solution you'd like
I can see multiple ways how the user could define how much and where the image should be enlarged:
- Allow negative values for margins in crop and rotate and crop, perhaps only when typed not when the slider is used
- Allow the crop area to exceed the source image when using the mouse (add a checkbox that enforces the old behavior)
- Add a new module for this
Furthermore there are multiple ways of how those newly added pixel could be colored: a. Simply fill them with black b. Allow the user to specify a color which is then used to fill them c. Take the color of the pixel at the border of the source image and "stretch" it (like the lens correction module does) d. Take the area near the border and scale/stretch it over the added area (and the arear where it is taken from) e. Mirror the image f. Repeat the image d. Use some fancy algorithm similar to those discussed here #2729
After this the user can use the retouch module to have everythin look natural.
Alternatives
I have tried to achieve this effect with hte modules that we already have but non was satisfying:
- Use the framing module:
- The order of this module can not be changed, hence I can not use the retouch module to fill the created areas
- Use the scale feature of the lens correction module:
- This works in some regards
- It fills the created areas with the color of the closest pixel
- If the lens correction module is used anyway and one uses a lens with strong distortion the "created" areas even get partial filled with real image information
- the big drawback is, that this module does not change the dimension of the image (according to the export width and export height of the image information panel), instead it downscales the original image. For my use case this is undesirable.
Additional context
I guess that option 1 + a should be easy to implement and would already help me a lot.
ps: Thank you for your great work!
Partially related to #8561
- Use the framing module:
- The order of this module can not be changed, hence I can not use the retouch module to fill the created areas
It will be moveable in 3.8. A patch to allow moving was just recently merged into master.
- Use the framing module:
- The order of this module can not be changed, hence I can not use the retouch module to fill the created areas
It will be moveable in 3.8. A patch to allow moving was just recently merged into master.
@ralfbrown That's great news.
However using the framing module for that still feels only like a workaround and not like a real solution. At least it is not an obvious solution to anyone who wants to enlarge an image.
I'm not a fan on such changes. A photo began when it is shot, not on a software. Anyway, darktable could also be linked to Gimp and this is possible in Gimp (or similar software).
I'm not a fan on such changes. A photo began when it is shot, not on a software.
IMHO: With this mindset one could argue why modules like liquify, retouch or even crop exist in darktable. I can understand both sides of this debate that splits the photography community. It is clearly a subjective matter, that’s why I think it should be up to the user which kind of adjustments he/she wants to apply.
darktable could also be linked to Gimp and this is possible in Gimp (or similar software).
I prefer a darktable only workflow. Mostly because I like to be able to change any adjustment later without having to manually redo any processing.
@mfg92: it's not the same to add not existing things in an image than just cropping (reduce) what is taken (and I don't use liquify). Said that, it's just a point of view I posted. I think when we talk about adding something in a software, it's good to have all views. About retouch, I just it to remove sensor duties when I add ones. We can't completely compare retouch or crop modules with what you want, even if some uses possible by, especially, retouch, are comparable.
Then, I of course understand one software workflow as I prefer that. I still consider darktable shouldn't go that way. But that's just my view and if a developer add that, I will just ignore it in my workflow. That's also what's good in a modular software like darktable.
This issue did not get any activity in the past 60 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.
I am still interested in such a feature.
This issue did not get any activity in the past 60 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.
I am still interested in such a feature.
This issue did not get any activity in the past 60 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.
I have the exact same use-case. When I do institutional portrait sessions, it happens that some of my selected pictures are badly framed. Sometimes I need to enlarge the canvas and add white or black pixels to get a proper framing that is regular on the portrait session.
This issue did not get any activity in the past 60 days and will be closed in 365 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.
Let's keep this open...
I run into the same issue with a portrait shot: I was in the need to extend it to the right and continue the color gradient over the new picture area. I see 2 required steps here:
- Extending the image size
- Extend the image information (content) over the new region. That might be called image retargeting or seam carving or something else. When 1 is added to dt I could alredy work around my usecase with the retouch module. I believe 1 is quick and easy to do.
@codingdave: Move "Framing" before the module which requires the extra canvas, then it will have extra space in which to work. There is no automatic means of extending content into the new area, but you can use the Retouch module to manually copy bits over.
This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.