i know this is going to be an extremely popular proposal, so here it goes!
currently, love handles color channels using values in the range [0, 255]. this is somewhat unfortunate, as floats in [0.0, 1.0] are much more common nowadays. plus, they are generally just nicer to work with
- math on color channels is nicer. instead of having to shrink the result of color operations back to [0, 255] from some wonky number, operations either remain in the [0.0, 1.0] range (multiplicative operations) or are much nicer to average (additive operations)
- pixel effects/shaders already use floats
- maps more nicely with 0.9.0's HDR canvases: [0.0, 1.0] is typical low-dynamic range, (1.0, +inf) is HDR land
- floats offer a hell of a lot more than 255 values, at least as far as the math is concerned.
- floats don't expose the underlying precision like integers do.
- whether it's a .png or an .exr, (1.0, 1.0, 1.0) means white
- compatibility break (but those happen often anyway considering the api isn't stable yet)
- float-based image formats are less common, therefore people are used to bytes. this would be apparent when working with ImageData