Pigment.O plugin

pigmento WIP version (temporary repository)

1 Like

it look better yes, my only “critic” is the thickness of the circle that is too thin for me (but maybe it’s on purpuse) :wink: good job

1 Like

Your continued work on this plugin almost a year later is admirable.

2 Likes

@Mako_Matt
Well I am glad at least that is somewhat solved once I launch the up coming new version. you can use whatever you want best but be warry if you use the WIP version. you may touch something and it suddenly it pops.

And yes the hue line thickness is on purpose so the line has contrast regardless of the shape inside. ultimatly the angle handle is more important than the hue circle.

@tom
Thank you Tom. I am just happy you guys even like something I did when I don’t know anything about color. I know a bit more now as I do this.

1 Like

I did that to the middle widget as much as I could but I had to retain the mask for the middle ones still because of the way I assembled them.

However for the others, they were simplified widget wise as I redid them and had some interesting side effects that I was not against in keeping. The zoom effect on them is not restricted now if they are not a composed widget.

3 Likes

They look great.
What do you mean by “the middle ones”?

2 Likes

The hue circle is on widget and the triangle inside is another widget inside. I do this because I swap the triangle for a cube and a diamond that exist also in their own widgets respectively as they are activated by different modules with different rules/math. This means I have to crop out the excess widget area so I can pick the widget behind it. Masking helps with that input voidness.

1 Like

I think it should be doable in some way without masking. I’ll take a look later.

1 Like

Well, you can have a semitransparent widget, and a widget on top that completely ignores the input (being able to click below), but I haven’t find a way to filter the input based on some area on the widget apart from using the mask.
What I would do in this case is having 1 widget paint all things. If you want to have separate classes for the different methods, instead of having widgets I would have simple delegate classes with methods to paint the object and to parse input, and then have the main widget delegate painting and input handling to the current delegate class. The delegate class can have some fields with the color info that is set when the values change externally ans a signal that is emited if the input parsed provokes a change in value. Or something like that. It would be kind of like a very simplified widget.

2 Likes

Quick question: Does the ui scaling also scale the dockers inside of Krita or only the add-ons u made from the plugin? I have a small PC and it would be better to see my canvas than have the big dockers in the way, so I was very interested about the feature.

1 Like

@ArtsiRoseDoll
I only am able to control the UI of the Pigment.o docker, I have no influence over Krita. I made it so it pains the least possible on the interface as you move it.
if you have a small screen I suggest you take a look at the hidden commands you can do with the modifier keys then, you can save alot of space with them while hiding buttons and sacrificing nothing.

2 Likes

Update: New Features and Performance Upgrades

Performance:

  • After finding a bug in the code I corrected all Panels and Sliders and they have become faster overall but not noticeable enough to make a big note except the OBJ panel that has become surprisingly light even in Linux. For that alone I am happy. No more performance issues. done!

Extension:

  • Previous version Extension sadly was a failed experiment. Or at least for it’s use case implemented that way. I started to upgrade it and noticed it did not keep stability on conversion values so I deleted the actions file and all connections to it.

Memory:

  • Added versioning in order to not give errors when downloading a new version, it will simply ignore everything in the “kritarc” file and write over it after. if the version is the same of the code it will load the settings but if they are different it will do a default boot. Default boot is much more stable now but the rest might bog somewhere, simply way to many combinations to test. just warn me if something goes wrong after installing.
  • Save information of the Harmony settings of the previous session.
  • Differentiates the colors of the Sphere object and between the colors of the User object instead of being shared colors between all objects.

Display:

  • Added harmony display in FGC, HSV, HSL, ARD. The dotted line becomes present when in Harmony Edit mode.
  • Gray Display - Killed it. No more use for it and it was getting in the way creating way too many forks in the road. Considering the forks in the road created by the locks are actually useful now I replaced the paths.
  • GUIs are in much higher resolution due to anti aliasing as shown before.
  • By correcting the panel I gained some unexpected benefits, as in the zoom tool (RMB) can now view outside the panel limits, however this is only limited to the RGB and ARD panels.
  • Color Names - When selected to display you can see color names be shown on the lower bar. Also if your having a hard time to find one press the Closest button next to the display and it will find the closest color with a name from the list and go to it. The color names list exists in a separate file where you can simply enter and add your own color names as desired you just need to follow the formatting.
  • Reference Illuminants - Since I integrated the color names I thought in adding illumination white color references. It is only visible when you edit the Kelvin slider so it does not get in the way.
  • Hue Shine- When active the Hue sliders display colors in full saturation and brightness.

GUI:

Color Spaces:

  • RYB - Implemented RYB angles to the color wheel that can be changed in the options. The HUE color wheel and the GAM color wheel both react to this mode. You can work in: CMY(Standard) or RYB. This obviously reflects in the Harmony mode as it is able to follow color theory properly now.
  • YUV - I added the yuv color space and also a GUI that works but display wise is incomplete. However I had a hard time to scrap it out so even so i maintained it in. you can press RMB to see the color your selecting. However I do not expect much use of this panel so I am not too worried.

Thoughts
This kinda completes my initial vision for Pigment.O. There are still some ideas I did not put because of limitations on the APIs and my own knowledge to do it too, but if I find a way to push it in I will. But overall docker wise it is almost fully complete. Maybe I will do something like a extension somehow connected to it but I don’t really know yet depends if I get a cool idea and it is doable. I will keep bug fixing it if any issues arise and polish it here and there. Hopefully it will become a nice tool for a production environment.

If you guys find a bug just send me word, I hope you guys like it.

19 Likes

Wow, wow and wow. period. I have to test this right now. Thanks a lot for your hard work

3 Likes

Congratulations!
Great work
Cheers
Alex

2 Likes

Small tip to handle the “pigment_o.py” file to edit something or tweak it for whatever reason.

I used the Atom IDE with the “custom folds” plugin.
I did a small tweak to the characters that open and close the folds.
#\\ - starts a custom fold.
#// - closes a custom fold.

So when doing a “normal fold all” and a “custom fold all”, one after the other.
The code should look like this:

After that it should feel much more organized.

1 Like

Even though the plugin worked for me in stable Krita without this package, it appears that it’s now necessary in the upcoming Krita 5.0.

2 Likes

I will keep my eyes open for it too. thank you.

1 Like

@EyeOdin , with value lock pigment.o doesn’t react to a color from color picker – is it normal?

1 Like

When locks are active pigmento closes itself from recieving colours. You can select them but will not change pigmento current setup. It is a lock. This happens on this case because not all colours are valid entries from the picker in that mode.

2 Likes

Hello, I found that the slider display value of the same color in 8-bit and 16 bit color configuration files is different. The latter should be the correct value. How can I get the correct value of the slider in 8-bit state? Thank you!

1 Like