@@ -5943,9 +5943,49 @@ Serializing alpha values</h3>
5943
5943
an implicit value of 1 (fully opaque) is the default.
5944
5944
5945
5945
If the alpha is any other value than 1,
5946
- it is explicitly included in the serialization,
5947
- as a <<number>> , not a <<percentage>> .
5948
- The value is expressed in base ten,
5946
+ it is explicitly included in the serialization as described below.
5947
+
5948
+ If the value is internally represented as an integer
5949
+ between 0 and 255 inclusive (i.e. 8-bit unsigned integer),
5950
+ follow these steps:
5951
+
5952
+ <ol>
5953
+ <li> Let <var> alpha</var> be the given integer.
5954
+ <li> If there exists an integer between 0 and 100 inclusive that,
5955
+ when multiplied with 2.55 and rounded to the closest integer
5956
+ (rounding up if two values are equally close), equals <var> alpha</var> ,
5957
+ let <var> rounded</var> be that integer divided by 100.
5958
+ <li> Otherwise, let <var> rounded</var> be <var> alpha</var>
5959
+ divided by 0.255 and rounded to the closest integer
5960
+ (rounding up if two values are equally close),
5961
+ divided by 1000.
5962
+ <li> Return the result of serializing <var> rounded</var>
5963
+ as a <<number>> .
5964
+ </ol>
5965
+
5966
+ Otherwise, return the result of serializing the given value
5967
+ (as a <<number>> , not a <<percentage>> ).
5968
+
5969
+ <div class="example" id="ex-alpha-255">
5970
+ <p>
5971
+ For example,
5972
+ if the alpha is stored as the 8-bit unsigned integer 237,
5973
+ the integer 93 satisfies the criterion
5974
+ because Math.round(93 * 2.55) is 237,
5975
+ and so the alpha is serialized as "0.93".
5976
+ </p>
5977
+ <p>
5978
+ However,
5979
+ if the alpha is stored as the 8-bit unsigned integer 236,
5980
+ there is no such integer
5981
+ (92 maps to 235 while 94 maps to 240),
5982
+ and so since 236 ÷ 0.255 = 925.490196078
5983
+ the alpha is serialized as "0.92549"
5984
+ (no more than 6 figures, trailing zeroes omitted).
5985
+ </p>
5986
+ </div>
5987
+
5988
+ The <<number>> value is expressed in base ten,
5949
5989
with the "." character as decimal separator.
5950
5990
The leading zero must not be omitted.
5951
5991
Trailing zeroes must be omitted.
0 commit comments