Summary: | 8 Bits to 16 Bits Float conversion causes pixelated glitches on the edges over transparent BG when OpenGL is ON | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Tyson Tan <tysontanx> |
Component: | Usability | Assignee: | Krita Bugs <krita-bugs-null> |
Status: | RESOLVED WORKSFORME | ||
Severity: | minor | CC: | halla |
Priority: | NOR | ||
Version First Reported In: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
When it glitches
A test file created as 8 Bits converted to 16 Bits |
Description
Tyson Tan
2014-10-18 09:05:49 UTC
Created attachment 89185 [details]
When it glitches
Created attachment 89186 [details]
A test file created as 8 Bits converted to 16 Bits
Workaround: 1) Insert a white layer as background; 2) Set its layer transparency to 1. This is as close as you can get to a 100% transparent background. The yellow or gray issue is because of the color correction -- it probably means that the monitor profile gives a better result. As for the glitches, I'm not sure what to think of it. Anti-aliased borders always consist of more or less transparent pixels, and going from 8 bit integer to 16 bit float won't add interpolation to make the image smoother -- and then it needs to be converted back to 8 bit integer for display, and in the process it's likely that there are rounding errors somewhere. I'm not sure the rounding errors are avoidable: they are likely to happen in the lcms conversion code. @Boud I think I understand now. I will look into this in the future to see if there is any way around it. Thanks! Workaround can be found at: Bug 340947 |