getting closer to alpha working

This commit is contained in:
Lars Brubaker 2021-07-27 11:03:53 -07:00
parent 5bb82bf230
commit dd848d6639

View file

@ -287,23 +287,27 @@ namespace MatterHackers.MatterControl.DesignTools
AlphaImage.Allocate(SourceImage.Width, SourceImage.Height, SourceImage.BitDepth, SourceImage.GetRecieveBlender()); AlphaImage.Allocate(SourceImage.Width, SourceImage.Height, SourceImage.BitDepth, SourceImage.GetRecieveBlender());
} }
var startInt = (int)(RangeStart * 255);
var endInt = (int)(RangeEnd * 255);
var rangeInt = (int)((RangeEnd - RangeStart) * 255);
byte GetAlphaFromIntensity(byte r, byte g, byte b) byte GetAlphaFromIntensity(byte r, byte g, byte b)
{ {
// return (color.Red0To1 * 0.2989) + (color.Green0To1 * 0.1140) + (color.Blue0To1 * 0.5870); // return (color.Red0To1 * 0.2989) + (color.Green0To1 * 0.1140) + (color.Blue0To1 * 0.5870);
var alpha = (r * 76 + g * 29 + b * 150) / 255; var alpha = (r * 76 + g * 29 + b * 150) / 255;
if (alpha < RangeStart) if (alpha < startInt)
{ {
return 0; return 0;
} }
else if (alpha > RangeEnd) else if (alpha > endInt)
{ {
return 0; return 0;
} }
else else
{ {
var s1 = (byte)Math.Min(255, ((alpha - RangeStart) * 255 / (RangeEnd - RangeStart))); var s1 = (byte)Math.Min(255, ((alpha - startInt) * 255 / rangeInt));
var s2 = (double)(alpha - RangeStart) / (double)(RangeEnd - RangeStart); var s2 = (double)(alpha / 255.0 - RangeStart) / (double)(RangeEnd - RangeStart);
return s1; return s1;