Browse Source

Use rounding when converting to RGB color

pull/7951/head
robloo 5 years ago
parent
commit
56142263ad
  1. 8
      src/Avalonia.Visuals/Media/HslColor.cs
  2. 16
      src/Avalonia.Visuals/Media/HsvColor.cs

8
src/Avalonia.Visuals/Media/HslColor.cs

@ -436,10 +436,10 @@ namespace Avalonia.Media
}
return Color.FromArgb(
(byte)(255 * alpha),
(byte)(255 * (r1 + m)),
(byte)(255 * (g1 + m)),
(byte)(255 * (b1 + m)));
(byte)Math.Round(255 * alpha),
(byte)Math.Round(255 * (r1 + m)),
(byte)Math.Round(255 * (g1 + m)),
(byte)Math.Round(255 * (b1 + m)));
}
/// <summary>

16
src/Avalonia.Visuals/Media/HsvColor.cs

@ -411,10 +411,10 @@ namespace Avalonia.Media
if (chroma == 0)
{
return Color.FromArgb(
(byte)(alpha * 255),
(byte)(min * 255),
(byte)(min * 255),
(byte)(min * 255));
(byte)Math.Round(alpha * 255),
(byte)Math.Round(min * 255),
(byte)Math.Round(min * 255),
(byte)Math.Round(min * 255));
}
// If the chroma is not zero, then we need to continue. The first step is to figure out
@ -484,10 +484,10 @@ namespace Avalonia.Media
}
return Color.FromArgb(
(byte)(alpha * 255),
(byte)(r * 255),
(byte)(g * 255),
(byte)(b * 255));
(byte)Math.Round(alpha * 255),
(byte)Math.Round(r * 255),
(byte)Math.Round(g * 255),
(byte)Math.Round(b * 255));
}
/// <summary>

Loading…
Cancel
Save