RESUME problems with blur brushes, particularly the WaterC Water Patter brush STEPS TO PLAYBACK 1.open the program 2.Open file with CMYK color profile 3.use the WaterC Water Patter brush (or other blur brushes) on the already applied color OBSERVED RESULT the brush generates a pixelated effect in the image, in addition to modifying the tone of the image by adding shades that do not match the previously selected colors EXPECTED RESULT In theory, this brush (or others with blurring or defocusing properties) should generate a gradient and mix the colors in the image in an organic way, similar to a watercolor painting or a drawing made in pastel chalk. SOFTWARE / OS VERSIONS Windows: 5.0.0 Beta 5
I could confirm this. No idea if we'll be able to fix it before release though. It happens with all color smudge brushes, regardless of settings. It does not happen with filter, deform, or clone brushes, and mypaint's color smudge brushes are disabled for CMYK. It seems like pixels with 0 opacity aren't being considered fully transparent, meaning everything gets a little bit of very transparent black (which is weird because in cmyk 0,0,0,0,0 is transparent white) added. Another possibility might be color conversion going wrong, but my money is on the transparency being mucked up. I'm assigning Dmitry, as this is his area.
Is it actually a 'crash'-level bug?
The bug is fixed in https://invent.kde.org/graphics/krita/-/commit/7ebdbdba818fd17c23b3d62475676c183da622ba Though I'll be released only in 5.0.1
Git commit e1828f1caefd03175ad26862f8129afe52998027 by Dmitry Kazakov. Committed on 20/12/2021 at 13:08. Pushed by dkazakov into branch 'krita/5.0'. Rename KoOptimized{Rgb,}PixelDataScalerU8ToU16Base This class is now also used for CMYK channel scaling, so the name should also be andjusted. (cherry picked from commit 8d3bd3dcc2946efb6dcb21555c94a46de78a5546) M +4 -4 libs/image/KisOverlayPaintDeviceWrapper.cpp M +4 -4 libs/pigment/CMakeLists.txt R +7 -7 libs/pigment/KoOptimizedPixelDataScalerU8ToU16.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h - 094% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.cpp [License: GPL(v2.0+)] R +9 -9 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h - 076% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.cpp [License: GPL(v2.0+)] A +24 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.h [License: GPL(v2.0+)] A +17 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.cpp [License: GPL(v2.0+)] A +23 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.h [License: GPL(v2.0+)] D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp D +0 -30 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h D +0 -17 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp D +0 -23 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.h https://invent.kde.org/graphics/krita/commit/e1828f1caefd03175ad26862f8129afe52998027
Git commit c48e2754d28d7b33388d8897591f3c52fe684093 by Dmitry Kazakov. Committed on 20/12/2021 at 12:54. Pushed by dkazakov into branch 'master'. Fix artifacts when using colorsmudge brush over CMYK image The problem is that we cannot rely on LCMS' conversions between CMYK-U8 and CMYK-U16. They cannot do proper round-tripping, the color fluctuates a lot, therefore causing artifacts. To workaround this issue we can just offload all these conversions to KoOptimizedRgbPixelDataScalerU8ToU16 (which now supports varying number of channels in the pixel). M +8 -0 libs/image/KisOverlayPaintDeviceWrapper.cpp M +8 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h M +11 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp M +7 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h M +7 -1 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp M +8 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h M +2 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp M +37 -0 libs/pigment/tests/TestColorConversionSystem.cpp M +2 -0 libs/pigment/tests/TestColorConversionSystem.h https://invent.kde.org/graphics/krita/commit/c48e2754d28d7b33388d8897591f3c52fe684093
Git commit 7ebdbdba818fd17c23b3d62475676c183da622ba by Dmitry Kazakov. Committed on 20/12/2021 at 13:08. Pushed by dkazakov into branch 'krita/5.0'. Fix artifacts when using colorsmudge brush over CMYK image The problem is that we cannot rely on LCMS' conversions between CMYK-U8 and CMYK-U16. They cannot do proper round-tripping, the color fluctuates a lot, therefore causing artifacts. To workaround this issue we can just offload all these conversions to KoOptimizedRgbPixelDataScalerU8ToU16 (which now supports varying number of channels in the pixel). (cherry picked from commit c48e2754d28d7b33388d8897591f3c52fe684093) M +8 -0 libs/image/KisOverlayPaintDeviceWrapper.cpp M +8 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h M +11 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp M +7 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h M +7 -1 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp M +8 -0 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h M +2 -2 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp M +37 -0 libs/pigment/tests/TestColorConversionSystem.cpp M +2 -0 libs/pigment/tests/TestColorConversionSystem.h https://invent.kde.org/graphics/krita/commit/7ebdbdba818fd17c23b3d62475676c183da622ba
Git commit 8d3bd3dcc2946efb6dcb21555c94a46de78a5546 by Dmitry Kazakov. Committed on 20/12/2021 at 13:06. Pushed by dkazakov into branch 'master'. Rename KoOptimized{Rgb,}PixelDataScalerU8ToU16Base This class is now also used for CMYK channel scaling, so the name should also be andjusted. M +4 -4 libs/image/KisOverlayPaintDeviceWrapper.cpp M +4 -4 libs/pigment/CMakeLists.txt R +7 -7 libs/pigment/KoOptimizedPixelDataScalerU8ToU16.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16.h - 094% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.cpp [License: GPL(v2.0+)] R +9 -9 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Base.h [from: libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.h - 076% similarity] A +22 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.cpp [License: GPL(v2.0+)] A +24 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16Factory.h [License: GPL(v2.0+)] A +17 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.cpp [License: GPL(v2.0+)] A +23 -0 libs/pigment/KoOptimizedPixelDataScalerU8ToU16FactoryImpl.h [License: GPL(v2.0+)] D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Base.cpp D +0 -22 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.cpp D +0 -30 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16Factory.h D +0 -17 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.cpp D +0 -23 libs/pigment/KoOptimizedRgbPixelDataScalerU8ToU16FactoryImpl.h https://invent.kde.org/graphics/krita/commit/8d3bd3dcc2946efb6dcb21555c94a46de78a5546
*** Bug 449364 has been marked as a duplicate of this bug. ***