Bug 420014 - [Docker][Histogram] Frozen histogram preview on flat pictures
Summary: [Docker][Histogram] Frozen histogram preview on flat pictures
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Dockers (show other bugs)
Version: 4.2.9
Platform: Appimage Linux
: NOR normal
Target Milestone: ---
Assignee: Tiar
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-13 09:02 UTC by David REVOY
Modified: 2020-05-14 07:27 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David REVOY 2020-04-13 09:02:38 UTC
Hi,

This bug prevents the usage of the Histogram Docker after opening flat pictures document like PNG, TIFF or JPG. The graph preview will be frozen as if it couldn't refresh anymore. However, after opening a KRA multilayered document, the preview will work fine and refresh after any change.

To reproduce:
=============
1. Open a JPG, PNG or TIFF document in Krita (eg. save https://www.peppercarrot.com/0_sources/0ther/artworks/hi-res/2017-06-23_portrait-of-Pepper_by-David-Revoy.jpg on disk, then open it).
2. Display the Histogram docker on your interface: Settings > Docker > Histogram
3. The Histogram appears with a correct representation of your picture.
4. Duplicate the layer (Layer > New > Duplicate Layer or Mask; or using the second icon button on bottom of layer stack or the shortcut Ctrl+J)
5. On the duplicate layer, call any filter that change a lot the color: Eg. Color Adjustement Curves (Filter > Adjust > Color Adjustement Curves or Ctrl+M) then on the RGB curve —the default curve— darken a lot the picture by dragging the curve down then press OK.

Result:
=======
The histogram graph is frozen and doesn't update. It still shows the histogram as it was for the first layer and it will keep this appearance during all the session after that. You can continue to duplicate, paint or try any filter: the histogram is not functional anymore for this type of document.

Exceptions:
===========
- If you keep doing transformation on the single layer without duplicating it; the histogram might continue to give feedback. 
- If you open a multi layered Krita file KRA, the problem doesn't happen at all. 
- If you save a JPG flat document as a single layer Krita file KRA, close it and re-open it you'll also get the problem. 
- If you save a JPG flat document as a multilayered Krita file KRA document (adding a duplicate layer, or a new paint layer) the problem doesn't happen at all after closing and reopening the file.

Tested:
=======
- This is at first glance not related to the profile of the picture (I tested pictures with different profile) or the color space (I tested a CMYK tiff).
- I could reproduce on both 4.2.6appimage and 4.2.9appimage on Linux, Kubuntu 19.10.
Comment 1 Ahab Greybeard 2020-04-16 15:05:44 UTC
I can reproduce this with the Apr-13 5.0.0 prealpha git bf6f43c
and with the Apr-13 4.3.0 'Plus' git ae2e6e5

This fault happens if you make a duplicate layer of the first opened .jpg file.
If you don't make a duplicate layer then the histogram updates correctly if you paint on the first opened .jpg file.

The second file doesn't need to be a multi-layer .kra file. It can be another .jpg file.

If you make a duplicate layer of the first opened .jpg image, then open and close another file, the Histogram will update correctly if you paint on the first opened .jpg file layers.

Setting to CONFIRMED
Comment 2 Tiar 2020-05-13 15:34:29 UTC
Git commit 243a413778e54de14225172e55bf81b28047fdc8 by Agata Cacko.
Committed on 13/05/2020 at 15:34.
Pushed by tymond into branch 'master'.

Fix Histogram updates after opening a flat file

Before this commit, histogram would not update if you open a file
with a single layer and operate only on layers other than the original
one.

It was because the histogram widget would save the paint device
of the projection when the view was created. Projection paint device can
change in various cases: for example in this one, the paint device for
the projection was the reused projection of the first layer. When
creating a new layer, there was a new paint device created for the
projection, so the paint device

This commit fixes it by always adding the canvas as a parameter
when updating the histogram.

M  +1    -3    plugins/dockers/histogram/histogramdocker_dock.cpp
M  +12   -18   plugins/dockers/histogram/histogramdockerwidget.cpp
M  +11   -4    plugins/dockers/histogram/histogramdockerwidget.h

https://invent.kde.org/kde/krita/commit/243a413778e54de14225172e55bf81b28047fdc8
Comment 3 Halla Rempt 2020-05-14 07:27:10 UTC
Git commit 5a8e0e241aa6c9aa888cd0f60c715833ac8f9195 by Boudewijn Rempt, on behalf of Agata Cacko.
Committed on 14/05/2020 at 07:26.
Pushed by rempt into branch 'krita/4.3'.

Fix Histogram updates after opening a flat file

Before this commit, histogram would not update if you open a file
with a single layer and operate only on layers other than the original
one.

It was because the histogram widget would save the paint device
of the projection when the view was created. Projection paint device can
change in various cases: for example in this one, the paint device for
the projection was the reused projection of the first layer. When
creating a new layer, there was a new paint device created for the
projection, so the paint device

This commit fixes it by always adding the canvas as a parameter
when updating the histogram.
(cherry picked from commit 243a413778e54de14225172e55bf81b28047fdc8)

M  +1    -3    plugins/dockers/histogram/histogramdocker_dock.cpp
M  +12   -18   plugins/dockers/histogram/histogramdockerwidget.cpp
M  +11   -4    plugins/dockers/histogram/histogramdockerwidget.h

https://invent.kde.org/kde/krita/commit/5a8e0e241aa6c9aa888cd0f60c715833ac8f9195