# In alpha premultiplied sRGB a color component can't be greater than the alpha, right?

Afaik, in alpha premultiplied color the components stored so:

[r * a, g * a, b * a, a]


So the fully opaque white color is:

[1 * 1, 1 * 1, 1 * 1, 1] = [1, 1, 1, 1]


Fully transparent white color is:

[1 * 0, 1 * 0, 1 * 0, 0] = [0, 0, 0, 0]


Half transparent white color is:

[1 * 0.5, 1 * 0.5, 1 * 0.5, 0.5] = [0.5, 0.5, 0.5, 0.5]


So I can't see a color channel that can be greater than the alpha. I'm asking because I have rendering artifacts and the library I'm using claims that textures stored as textures as sRGBA premultiplied pixels though I see values like

[0.4784314, 0.4784314, 0.4784314, 0.19607845]

• This is true only if you insist 1 is the biggest color value. Jun 2 at 21:05
• @joojaa But sRGB assumes that, right? Jun 3 at 7:54
• yes because thst the device maximum, but then sRGB makes alot of assumptions that make no sense. In reality you really you should not do any computation in device space anyway. You should do this is some other space that is atleast computationally linear then convert than into sRGB. Why? Multiplication does not male any sense in a nonlinear space. Jun 3 at 7:58
• Agree with joojaa -- premultiplied sRGB is a stupid idea but unfortunately was included in a certain graphics standard: twitter.com/Simon_Fe1/status/1336357963821420544 Jun 3 at 12:46
• It sounds like this post is referring specifically to pre-multiplied alpha, and there are times when pre-multiplied alpha does make sense. But I also agree with joojaa, check your assumptions as it is possible to get non-sense values when those assumptions are broken. Here is a link supporting the use of pre-multiplied alpha: blog.demofox.org/2015/06/19/… Jun 8 at 14:23

As it turned out, the premultiplied color data was transformed to sRGB. Alpha stays linear. In that case, a component can be greater than the alpha. For example, with alpha 0.5 and color 1.0, the premultiplied value (0.5) is fed to the forward transformation (CIE XYZ to sRGB) formula that returns ~0.74.