Bug 382396 - (gmic-qt) Using non-RGBA colorspace results in empty image
Summary: (gmic-qt) Using non-RGBA colorspace results in empty image
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: G'Mic for Krita (show other bugs)
Version: git master (please specify the git hash!)
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-16 11:00 UTC by Nicholas LaPointe
Modified: 2017-08-10 08:52 UTC (History)
0 users

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 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