Commit 8670c344 authored by Tebjan Halm's avatar Tebjan Halm
Browse files

Merge pull request #229 from popekim/feature/rounding

changed rounding behavior of float to int color conversion from floor() to round()
parents 95b3850f aae6defd
......@@ -63,20 +63,20 @@ namespace Svg
if (alphaDecimal <= 1)
{
alphaValue = (int)(alphaDecimal * 255);
alphaValue = (int)Math.Round(alphaDecimal * 255);
}
else
{
alphaValue = (int)alphaDecimal;
alphaValue = (int)Math.Round(alphaDecimal);
}
}
Color colorpart;
if (values[0].Trim().EndsWith("%"))
{
colorpart = System.Drawing.Color.FromArgb(alphaValue, (int)(255 * float.Parse(values[0].Trim().TrimEnd('%')) / 100f),
(int)(255 * float.Parse(values[1].Trim().TrimEnd('%')) / 100f),
(int)(255 * float.Parse(values[2].Trim().TrimEnd('%')) / 100f));
colorpart = System.Drawing.Color.FromArgb(alphaValue, (int)Math.Round(255 * float.Parse(values[0].Trim().TrimEnd('%')) / 100f),
(int)Math.Round(255 * float.Parse(values[1].Trim().TrimEnd('%')) / 100f),
(int)Math.Round(255 * float.Parse(values[2].Trim().TrimEnd('%')) / 100f));
}
else
{
......@@ -260,7 +260,7 @@ namespace Svg
break;
}
}
Color rgb = Color.FromArgb( (int)( r * 255.0 ), (int)( g * 255.0 ), (int)( b * 255.0f ) );
Color rgb = Color.FromArgb( (int)Math.Round( r * 255.0 ), (int)Math.Round( g * 255.0 ), (int)Math.Round( b * 255.0 ) );
return rgb;
}
......
......@@ -40,7 +40,7 @@ namespace Svg
//is none?
if (this == SvgPaintServer.None) return new SolidBrush(System.Drawing.Color.Transparent);
int alpha = (int)((opacity * (this.Colour.A/255.0f) ) * 255);
int alpha = (int)Math.Round((opacity * (this.Colour.A/255.0) ) * 255);
Color colour = System.Drawing.Color.FromArgb(alpha, this.Colour);
return new SolidBrush(colour);
......
......@@ -185,7 +185,7 @@ namespace Svg
radial
? 1 - (currentStop.Offset.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) / boundWidth)
: (currentStop.Offset.ToDeviceValue(renderer, UnitRenderingType.Horizontal, this) / boundWidth);
colour = System.Drawing.Color.FromArgb((int)(mergedOpacity * 255), currentStop.GetColor(this));
colour = System.Drawing.Color.FromArgb((int)Math.Round(mergedOpacity * 255), currentStop.GetColor(this));
actualStops++;
......
......@@ -87,7 +87,7 @@ namespace Svg
if (this.Stops.Count == 1)
{
var stopColor = this.Stops[0].GetColor(renderingElement);
int alpha = (int)((opacity * (stopColor.A/255.0f) ) * 255);
int alpha = (int)Math.Round((opacity * (stopColor.A/255.0f) ) * 255);
Color colour = System.Drawing.Color.FromArgb(alpha, stopColor);
return new SolidBrush(colour);
}
......
......@@ -147,7 +147,7 @@ namespace Svg
{
var stop = Stops.Last();
var origColor = stop.GetColor(renderingElement);
var renderColor = System.Drawing.Color.FromArgb((int)(opacity * stop.Opacity * 255), origColor);
var renderColor = System.Drawing.Color.FromArgb((int)Math.Round(opacity * stop.Opacity * 255), origColor);
var origClip = renderer.GetClip();
try
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment