When using nearest neighbour scaling with a RasterSymbolizer and images with <255 alpha, don't overflow channels. Thanks @craigds. fixes #731

This commit is contained in:
Robert Coup 2011-03-14 22:53:04 +00:00
parent aea93fe1f9
commit 1830d59f00

View file

@ -157,9 +157,9 @@ namespace agg
{
cover = base_mask;
}
p[Order::R] = (value_type)((cr * cover / alpha) + (r * a * (base_mask - alpha) / base_mask / p[Order::A]));
p[Order::G] = (value_type)((cg * cover / alpha) + (g * a * (base_mask - alpha) / base_mask / p[Order::A]));
p[Order::B] = (value_type)((cb * cover / alpha) + (b * a * (base_mask - alpha) / base_mask / p[Order::A]));
p[Order::R] = (value_type)((cr * alpha / cover) + (r * a * (base_mask - alpha) / base_mask / p[Order::A]));
p[Order::G] = (value_type)((cg * alpha / cover) + (g * a * (base_mask - alpha) / base_mask / p[Order::A]));
p[Order::B] = (value_type)((cb * alpha / cover) + (b * a * (base_mask - alpha) / base_mask / p[Order::A]));
}
}
}