Bug 388307 - JJ: Scaling an image breaks symmetry axes for multibrush tool
Summary: JJ: Scaling an image breaks symmetry axes for multibrush tool
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Tools (show other bugs)
Version: 3.3.2
Platform: Arch Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: junior-jobs
Depends on:
Blocks:
 
Reported: 2017-12-28 20:09 UTC by Unknown
Modified: 2018-02-28 13:55 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Unknown 2017-12-28 20:09:50 UTC
1) Press `Q` to select the multibrush tool in an image.
2) Not sure if this setup is really necessary, but I set the tool up as follows in the "Tool Options" tab:

[Basic Smoothing]
[ ] Assistant
[x] Snap single
[x] Show Axes
Axes Angle: 0.0°
[Mirror]
[x] Horizontally [ ] Vertically

Make sure to verify that it works as expected by drawing: i.e., if you draw something on (x, y), the same value should appear on (-x, y) if you imagine the horizontal center lies at x = 0.

3) Now, scale the image up. In my case, I resized an image from 64×32 px to 1024×512 px, hence keeping its proportions.

4) Try to use the multibrush tool again. If you show the axes (in the tool settings), you will see that they still apply to the old image of dimensions 64×32 px. Essentially, this breaks the multibrush tool and requires the user to save, close and re-open the image for the axis to be recalculated.

I would have expected these axes to be recomputed whenever the image size changes.
Comment 1 Halla Rempt 2018-01-03 15:21:44 UTC
Hi,

I can confirm the issue. It's always been like this, I think.
Comment 2 Halla Rempt 2018-01-03 15:22:23 UTC
It should be easy enough to fix: the tool should be updated when the image size changes. Adding the junior_job keyword.
Comment 3 simeirxh 2018-01-23 17:40:51 UTC
(In reply to kdex from comment #0)
> 1) Press `Q` to select the multibrush tool in an image.
> 2) Not sure if this setup is really necessary, but I set the tool up as
> follows in the "Tool Options" tab:
> 
> [Basic Smoothing]
> [ ] Assistant
> [x] Snap single
> [x] Show Axes
> Axes Angle: 0.0°
> [Mirror]
> [x] Horizontally [ ] Vertically
> 
> Make sure to verify that it works as expected by drawing: i.e., if you draw
> something on (x, y), the same value should appear on (-x, y) if you imagine
> the horizontal center lies at x = 0.
> 
> 3) Now, scale the image up. In my case, I resized an image from 64×32 px to
> 1024×512 px, hence keeping its proportions.
> 
> 4) Try to use the multibrush tool again. If you show the axes (in the tool
> settings), you will see that they still apply to the old image of dimensions
> 64×32 px. Essentially, this breaks the multibrush tool and requires the user
> to save, close and re-open the image for the axis to be recalculated.
> 
> I would have expected these axes to be recomputed whenever the image size
> changes.

Hi,

I looked into this issue. You can actually reset the axes by clicking the "Reset" button under the "Show Origin" checkbox in the tools options docker. I would say how it works now is better than automatically change the positions of the axis immediately after changing the size of the canvas, as sometimes artists might want to have the axis remain where it is. Maybe we should add this to the wiki?
Comment 4 Unknown 2018-01-23 18:00:31 UTC
(In reply to simeirxh from comment #3)
> (In reply to kdex from comment #0)
> > 1) Press `Q` to select the multibrush tool in an image.
> > 2) Not sure if this setup is really necessary, but I set the tool up as
> > follows in the "Tool Options" tab:
> > 
> > [Basic Smoothing]
> > [ ] Assistant
> > [x] Snap single
> > [x] Show Axes
> > Axes Angle: 0.0°
> > [Mirror]
> > [x] Horizontally [ ] Vertically
> > 
> > Make sure to verify that it works as expected by drawing: i.e., if you draw
> > something on (x, y), the same value should appear on (-x, y) if you imagine
> > the horizontal center lies at x = 0.
> > 
> > 3) Now, scale the image up. In my case, I resized an image from 64×32 px to
> > 1024×512 px, hence keeping its proportions.
> > 
> > 4) Try to use the multibrush tool again. If you show the axes (in the tool
> > settings), you will see that they still apply to the old image of dimensions
> > 64×32 px. Essentially, this breaks the multibrush tool and requires the user
> > to save, close and re-open the image for the axis to be recalculated.
> > 
> > I would have expected these axes to be recomputed whenever the image size
> > changes.
> 
> Hi,
> 
> I looked into this issue. You can actually reset the axes by clicking the
> "Reset" button under the "Show Origin" checkbox in the tools options docker.
> I would say how it works now is better than automatically change the
> positions of the axis immediately after changing the size of the canvas, as
> sometimes artists might want to have the axis remain where it is. Maybe we
> should add this to the wiki?

I don't have that button/checkbox in my docker (krita 3.3.3). Anyway, I can't see the usefulness of omitting the axis reset after the resize. What useful properties would this yield? Depending on how you resize the image, it's likely that the new axes don't even touch the image anymore.

IMHO this would lead to questionable UX and to artists getting confused, including myself before I figured out why the multibrush tool had stopped working (which in turn is why this ticket exists in the first place). ;)
Comment 5 simeirxh 2018-01-23 18:08:50 UTC
(In reply to kdex from comment #4)
> (In reply to simeirxh from comment #3)
> > (In reply to kdex from comment #0)
> > > 1) Press `Q` to select the multibrush tool in an image.
> > > 2) Not sure if this setup is really necessary, but I set the tool up as
> > > follows in the "Tool Options" tab:
> > > 
> > > [Basic Smoothing]
> > > [ ] Assistant
> > > [x] Snap single
> > > [x] Show Axes
> > > Axes Angle: 0.0°
> > > [Mirror]
> > > [x] Horizontally [ ] Vertically
> > > 
> > > Make sure to verify that it works as expected by drawing: i.e., if you draw
> > > something on (x, y), the same value should appear on (-x, y) if you imagine
> > > the horizontal center lies at x = 0.
> > > 
> > > 3) Now, scale the image up. In my case, I resized an image from 64×32 px to
> > > 1024×512 px, hence keeping its proportions.
> > > 
> > > 4) Try to use the multibrush tool again. If you show the axes (in the tool
> > > settings), you will see that they still apply to the old image of dimensions
> > > 64×32 px. Essentially, this breaks the multibrush tool and requires the user
> > > to save, close and re-open the image for the axis to be recalculated.
> > > 
> > > I would have expected these axes to be recomputed whenever the image size
> > > changes.
> > 
> > Hi,
> > 
> > I looked into this issue. You can actually reset the axes by clicking the
> > "Reset" button under the "Show Origin" checkbox in the tools options docker.
> > I would say how it works now is better than automatically change the
> > positions of the axis immediately after changing the size of the canvas, as
> > sometimes artists might want to have the axis remain where it is. Maybe we
> > should add this to the wiki?
> 
> I don't have that button/checkbox in my docker (krita 3.3.3). Anyway, I
> can't see the usefulness of omitting the axis reset after the resize. What
> useful properties would this yield? Depending on how you resize the image,
> it's likely that the new axes don't even touch the image anymore.
> 
> IMHO this would lead to questionable UX and to artists getting confused,
> including myself before I figured out why the multibrush tool had stopped
> working (which in turn is why this ticket exists in the first place). ;)

Ah sorry for that. It seems the button only exists in beta... I think what you said makes sense. I don't know what the developers currently maintaining this tool think about it though... Since it looks like the tool is being actively maintained, I don't know if I should just go and change it...

Anyway, when the 4.0 comes out, you'll at least have the button :-)
Comment 6 Halla Rempt 2018-01-24 09:22:18 UTC
Yes, I'm hoping that someone would come up and implement this reset after resize. It's a perfect starting point for someone who wants to do a gsoc with Krita, for instance.
Comment 7 Halla Rempt 2018-02-28 13:55:18 UTC
Git commit b86c3271b541ec45fad8b124819eb850e8bb3831 by Boudewijn Rempt.
Committed on 28/02/2018 at 13:42.
Pushed by rempt into branch 'master'.

Make multibrush tool reset axes automatically after resizing of the canvas

Patch by Micahel Zhou
Differential Revision:https://phabricator.kde.org/D10103

M  +1    -0    plugins/tools/basictools/kis_tool_multihand.cpp

https://commits.kde.org/krita/b86c3271b541ec45fad8b124819eb850e8bb3831