https://bugs.kde.org/show_bug.cgi?id=472343

            Bug ID: 472343
           Summary: Levels filter layer properties set in Python have no
                    effect on that filter layer
    Classification: Applications
           Product: krita
           Version: nightly build (please specify the git hash!)
          Platform: Manjaro
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Filter Layers
          Assignee: krita-bugs-n...@kde.org
          Reporter: chirn...@hotmail.com
  Target Milestone: ---

"Levels" filter layer can be created and added to the stack using the Python
API but setting its properties programmatically has no effect on the filter
layer. Setting properties on other filter layers works fine. This may be a case
where it's just not implemented in the API yet, but regardless it's a roadblock
for me.

For example, I can add the filter layer manually and try to affect it through
Scripter by entering something like:

Krita.instance().activeDocument().activeNode().filter().configuration().setProperty('gammavalue',
0.452)
Krita.instance().activeDocument().refreshProjection()

I can query that value with:

print(Krita.instance().activeDocument().activeNode().filter().configuration().properties())

This will spit out something like {'gammavalue': 0.452} plus any other property
I've tried to set, but none of that has any effect on the filter layer itself.
I'm able to do similar operations with other filter layers just fine.

The reason I would need to do this is that I'm writing a plugin for working
with normal maps, and it's better to be able to work in 16-bit and only export
to 8-bit if need be. Other than missing proper dithering (which I'm faking),
this is fairly possible by setting a few properties in the png exporter (namely
Embed sRGB profile, Force convert to sRGB, and Force convert to 8
bits/channel), but the color representation will obviously be off from 16-bit >
8-bit, so the simplest way to fix that beforehand is to add a Levels filter
layer at the top of the stack and change the gamma value to 0.452. It's not a
great experience to ask a user of my plugin to change that value manually on
every project, so ideally that would be taken care of by the plugin.

Aaaand I just realized I could start up a project with the gamma corrected
sRGB-elle-V2-srgbtrc profile instead...hmmm...which might work...but then
becomes a problem if I actually want to export in 16-bit linear...so the
problem remains.

Even just being able to set the "mode" to "channels" and change "gammavalue"
would solve my issue with the Levels filter layer at the moment.

Krita

 Version: 5.2.0-prealpha (git 508d078)  [and previous versions]
 Hidpi: false

Qt

  Version (compiled): 5.15.7
  Version (loaded): 5.15.7

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 6.4.2-3-MANJARO
  Pretty Productname: Manjaro Linux
  Product Type: manjaro
  Product Version: unknown
  Desktop: XFCE
  Appimage build: Yes

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to