Bug 416772

Summary: Warnings regarding HDR mode in Save -> PNG options and Render Animation dialog
Product: [Applications] krita Reporter: Tiar <tamtamy.tymona>
Component: HDRAssignee: Krita Bugs <krita-bugs-null>
Status: CONFIRMED ---    
Severity: normal CC: dimula73, emmetoneill.pdx
Priority: NOR    
Version: 4.2.8   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:

Description Tiar 2020-01-26 00:58:59 UTC
SUMMARY
People are often confused about HDR options in PNG options: https://www.reddit.com/r/krita/comments/etwe3h/help_exporting_transparent_png/
and animation: https://www.reddit.com/r/krita/comments/epbwuy/grey_washed_out_colors_when_exporting_animation/ , (here most probably the same issue: ) https://www.reddit.com/r/krita/comments/emku5w/greyed_out_rendered_videos_and_animation/

I know we cannot assume that someone didn't just want to save in a weird format, but a warning here and there would protect our less technical users (and in case of animation, I guess everyone, because in "Video" tab there is no access to PNG options while they still affect the result, and it's a bit tedious to check it every time).


SITUATIONS that I believe need some warnings:
1.
- Image color space: 8bit sRGB
- Save as PNG
- HDR turned on
2. 
- Image color space: Rec2020
- Save as PNG
- HDR turned off
3. 
- 1. but with animation
4. 
- 2. but with animation
5. 
- PNG options with HDR turned on, animation with HDR turned off (because frames are in PNG)
6.
- PNG options with HDR turned off, animation with HDR turned on (because frames are in PNG)

Regarding 5. and 6., maybe it would be even possible to somehow switch both together? Maybe Video and Frame options could be at least in dialog so we could control it better?
Comment 1 Dmitry Kazakov 2020-03-23 21:51:27 UTC
Condition for checking is the color space is HDR:

bool isHDR = 
    (colorSpace->colorDepthId() == Integer16BitsColorDepthID && 
     colorSpace->colorProfile() ==  KoColorSpaceRegistry::instance()->p2020PQProfile()) ||
     colorSpace->colorDepthId() == Float16BitsColorDepthID || colorSpace->colorDepthId() == Float32BitsColorDepthID);

Basically, `if (!isHDR)` and the user tries to save HDR PNG image, we should warn him.