GNOME Bugzilla – Bug 448417
Foreground Select Tool zoom problems with image pyramid
Last modified: 2007-10-08 19:54:41 UTC
Thanks to Pontus Enhager for reporting this to the mailing list. 1. Open an image and select the Foreground Select Tool. 2. Select an area 3. Zoom out to 50% Result: The mask is rendered at 100% zoom.
We can either deal with this in gimp_display_shell_render_mask() or also use an image pyramid for the mask. I am not sure what's better. It might also make sense to use an image pyramid for the selection, but that's a different issue.
Probably the best we can do is to generalize the image pyramid code and move some parts of it to app/base. It should then be possible to turn any tile-manager into an image pyramid with only little effort.
I really like the idea of generalized pyramid code and the use of pyramids for all large TileManagers. There are many things that are good about making the change, among them that the masks and selections will be rendered accurately in "sync" with the image since they will use the same interpolation algorithm, and that the necessary swapping of tiles will be decreased even more for some situations with large images. But do we want to postpone 2.4 even more to be able to implement that in a consistent and stable way? Wouldn't implementing it be like duplicating (GEGL-)code in a sense?
For now we just need to fix this particular bug and nothing more.
Created attachment 90412 [details] [review] Foreground-Extraction-Tool-Mask-Fix.patch Proposed fix by refactoring the render_image_init_info* functions.
Fixed in trunk, revision 22822. 2007-06-21 Martin Nordholts <martinn@svn.gnome.org> * app/display/gimpdisplayshell-render.c (gimp_display_shell_render): Refactored the two helper functions render_image_init_info(_full)? and always use the shell base scale for the shell->mask. Fixes bug #448417.
*** Bug 452863 has been marked as a duplicate of this bug. ***
*** Bug 455961 has been marked as a duplicate of this bug. ***
*** Bug 460003 has been marked as a duplicate of this bug. ***
Reopening as this bug has returned.
2007-10-08 Sven Neumann <sven@gimp.org> * app/display/gimpdisplayshell.[ch]: removed level from GimpDisplayShell struct. * app/display/gimpdisplayshell-render.c: fixed rendering of the mask. Closes bug #448417 again.