Bug 382396

Summary: (gmic-qt) Using non-RGBA colorspace results in empty image
Product: [Applications] krita Reporter: Nicholas LaPointe <nicholaslapointe8>
Component: G'Mic for KritaAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:

Description Nicholas LaPointe 2017-07-16 11:00:09 UTC
When using G'MIC on a layer which uses a non-RGBA colorspace, both the preview in the dialog and the final image will be empty.
Comment 1 Nicholas LaPointe 2017-08-10 08:52:11 UTC
Git commit 26e32b7eba0920955cbdc45779b0dc8a32c673cf by Nicholas LaPointe.
Committed on 10/08/2017 at 08:49.
Pushed by nicholasl into branch 'master'.

Scale channel values by 255.0 when sending a non-RGBA image to G'MIC

A different code path is taken depending on whether or not the image data to be sent to G'MIC is in the RGBA space.
In the RGBA case, the channel values are scaled to range between 0.0 and 255.0
In the non-RGBA case, the values were not being similarly scaled before this commit.
(In both cases, the image is converted to use 32-bit float RGBA before any scaling is applied.)

This is different from how the old plug-in worked:
Old plug-in
    convertToGmicImageFast() on RGBA image fills gmicImage._data with values between 0.0 and 1.0
    convertToGmicImage() on non-RGBA image fills gmicImage._data with values between 0.0 and 1.0

New plug-in, after commit
    convertToGmicImageFast() on RGBA image fills gmicImage->_data with values between 0.0 and 255.0
    convertToGmicImage() on non-RGBA image fills gmicImage->_data with values between 0.0 and 255.0

New plug-in, before commit
    convertToGmicImageFast() on RGBA image fills gmicImage->_data with values between 0.0 and 255.0
    convertToGmicImage() on non-RGBA image fills gmicImage->_data with values between 0.0 and 1.0
Differential Revision: https://phabricator.kde.org/D7225

M  +5    -1    plugins/extensions/qmic/kis_qmic_simple_convertor.cpp
M  +1    -1    plugins/extensions/qmic/kis_qmic_simple_convertor.h

https://commits.kde.org/krita/26e32b7eba0920955cbdc45779b0dc8a32c673cf
Comment 2 Nicholas LaPointe 2017-08-10 08:52:30 UTC
Git commit d6f7619cc99bf5e8b294cfe2eb47de8e4c7d3c89 by Nicholas LaPointe.
Committed on 10/08/2017 at 08:49.
Pushed by nicholasl into branch 'krita/3.2'.

Scale channel values by 255.0 when sending a non-RGBA image to G'MIC

A different code path is taken depending on whether or not the image data to be sent to G'MIC is in the RGBA space.
In the RGBA case, the channel values are scaled to range between 0.0 and 255.0
In the non-RGBA case, the values were not being similarly scaled before this commit.
(In both cases, the image is converted to use 32-bit float RGBA before any scaling is applied.)

This is different from how the old plug-in worked:
Old plug-in
    convertToGmicImageFast() on RGBA image fills gmicImage._data with values between 0.0 and 1.0
    convertToGmicImage() on non-RGBA image fills gmicImage._data with values between 0.0 and 1.0

New plug-in, after commit
    convertToGmicImageFast() on RGBA image fills gmicImage->_data with values between 0.0 and 255.0
    convertToGmicImage() on non-RGBA image fills gmicImage->_data with values between 0.0 and 255.0

New plug-in, before commit
    convertToGmicImageFast() on RGBA image fills gmicImage->_data with values between 0.0 and 255.0
    convertToGmicImage() on non-RGBA image fills gmicImage->_data with values between 0.0 and 1.0
Differential Revision: https://phabricator.kde.org/D7225

M  +5    -1    plugins/extensions/qmic/kis_qmic_simple_convertor.cpp
M  +1    -1    plugins/extensions/qmic/kis_qmic_simple_convertor.h

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