Do we need to do something for Pharo 4? And what is the simplest/quickest thing that would work - even if it needs revisiting in Pharo 5? cheers -ben
On Sat, Mar 21, 2015 at 8:31 AM, Aliaksei Syrel <[email protected]> wrote: > I would not change the alpha at all. Instead, set alpha 255 in >> setPrivateRed: r green: g blue: b > > > It makes sense to be consistent. However blindly setting it to 255 is > sometimes unexpected too: > > Color transparent + Color transparent is assume to get Color transparent > and not black. > > Maybe for + we could add alphas, but for subtraction take the smallest > alpha of two colors? > > Cheers, > Alex > > On Sat, Mar 21, 2015 at 12:32 AM, Nicolai Hess <[email protected]> wrote: > >> 2015-03-21 0:19 GMT+01:00 Aliaksei Syrel <[email protected]>: >> >>> Hi, >>> >>> I played with colors and found out, that arithmetical operations with >>> colors are completely broken. >>> >>> >>> https://pharo.fogbugz.com/f/cases/15188/Color-ariphmetical-operations-are-broken >>> >>> Result is not a valid Color - just garbage. It happens because alpha is >>> not being initialized and stays nil. It seems that operation were >>> implemented before alpha support was added. So I propose the following >>> solution: >>> >>> Color red - Color red = Color transparent >>> >>> (Color white alpha: 1) - (Color white alpha: 0.5) = (Color white alpha: >>>> 0.5) >>> >>> R,G,B are subtracted as before. Alpha channels are subtracted too. >>> >>> Color red + Color blue = Color magenta >>> >>> Color red + Color transparent = Color red >>> >>> (Color white alpha: 0.5) + (Color white alpha: 0.5) = (Color white >>>> alpha: 1) >>> >>> R,G,B are added as before. Alpha channels are added too. >>> >>> Multiplication and division by number doesn't change alpha channel. >>> >>> Cheers, >>> Alex >>> >>> >> >> I would not change the alpha at all. Instead, set alpha 255 in >> setPrivateRed: r green: g blue: b >> >> >> >
