Ticket UUID: | 3501372 | |||
Title: | Washed out colors on Mac OS X display | |||
Type: | Bug | Version: | obsolete: 8.5.10 | |
Submitter: | parasytic | Created on: | 2012-03-10 22:39:51 | |
Subsystem: | 29. Colormaps and Visuals | Assigned To: | kevin_walzer | |
Priority: | 5 Medium | Severity: | Minor | |
Status: | Closed | Last Modified: | 2015-01-31 23:14:17 | |
Resolution: | Fixed | Closed By: | kevin_walzer | |
Closed on: | 2015-01-31 23:14:17 | |||
Description: |
While building a Tk app in Python on Mac OS X 10.7.3, I noticed the colors appear consistently "washed out" as if there is some sort of bad gamma correction going on under the hood. As a test, I write a very simple app that draws 1-pixel-high rectangles to a canvas with varying levels of intensity on each of the RGB channels, creating a black-to-white gradient. Second, I created a black-to-white gradient in GIMP to use as a baseline. When placed side-by-side, it's pretty clear that Tk is adjusting colors incorrectly. I've tried the same test on Linux, and it appears to work correctly, displaying the same exact gradient as generated by GIMP. I have also tried updating ActiveTcl and Python on OS X, but the problem persists. I'm now using python.org Python 2.7.2, and ActiveTcl 8.5.11.1. Attached is a PNG that illustrated the difference between the Tk gradient and the GIMP gradient, as well as the Python source I used to generate the Tk gradient. | |||
User Comments: |
kevin_walzer added on 2015-01-31 23:14:17:
Fix last year should address this, hence I am closing it. The bug was the result of changes in Apple's NSColor API. kevin_walzer added on 2014-10-31 00:06:53: Can you confirm the recent release of Tcl/Tk addresses this? If not I will have to investigate further. kevin_walzer added on 2014-10-29 13:54:37: I can't download the attached PNG to see, but a recent commit to address internal color rendering issues on OS X likely fixed this, so I am closing the bug. parasytic added on 2012-03-11 06:15:46: Some more info: 1. Displaying the GIMP gradient as a GIF in a Tk window shows the same "washed out" effect, where dark colors are too bright. 2. Using the pixel API to put and get back pixel colors in a photo always returns the expected RGB values. Whats displayed on screen is always unexpected (and verified with a screenshot) 3. The adjustment is non-linear, but the gamma correction algorithms I'm familiar with do not correctly counteract what's displayed. In the end, I decided to use the screenshot from the Tk gradient to build a LUT that can workaround the bug. It's not entirely accurate (the round-trip causes artifacts in the RGB intensities) but it's good enough for my project. What I'm actually working on is a very simple way to theme my GUI, and in developing it, I'm trying to match a theme that comes with Sublime Text 2. You can imagine my surprise when my dark gray background was 4% brighter than in Sublime Text 2. (Expected #211E1E, got #2C2828) Definitely off enough to see the difference by eye. parasytic added on 2012-03-11 05:40:52: File Added - 437960: grays.py parasytic added on 2012-03-11 05:39:52: File Added - 437959: grays.png |
