示例#1
0
        public ColorModel(string description, int maxPixelValue = 0, int gradientSize = 1024)
        {
            if (maxPixelValue == 0)
            {
                maxPixelValue = MaxPixelValue;
            }

            m_description = description;

            m_gradientSize = gradientSize;

            m_gain = 1.0;

            m_controlPts = new ObservableCollection <ColorControlPoint>();
            m_stops      = new ObservableCollection <ColorStop>();

            m_gradient = new WG_Color[m_gradientSize];

            for (int i = 0; i < m_gradientSize; i++)
            {
                m_gradient[i] = new WG_Color(0, 0, 0);
            }

            SetMaxPixelValue(maxPixelValue);
        }
示例#2
0
        public ColorModel()
        {
            m_description  = "Default Color Model";
            m_gradientSize = 1024;
            m_gain         = 1.0;

            m_controlPts = new ObservableCollection <ColorControlPoint>();
            m_stops      = new ObservableCollection <ColorStop>();

            m_gradient = new WG_Color[m_gradientSize];


            m_controlPts.Add(new ColorControlPoint(0, 0));
            m_controlPts.Add(new ColorControlPoint(MaxPixelValue, m_gradientSize - 1));

            m_stops.Add(new ColorStop(0, new WG_Color(0, 0, 0)));
            m_stops.Add(new ColorStop(MaxPixelValue, new WG_Color(255, 255, 255)));

            m_maxPixelValue = MaxPixelValue;
            m_colorMap      = new WG_Color[m_maxPixelValue + 1];

            for (int i = 0; i < m_maxPixelValue + 1; i++)
            {
                m_colorMap[i] = new WG_Color(0, 0, 0);
            }

            //SetMaxPixelValue(maxPixelValue);
            m_maxPixelValue = MaxPixelValue;
            m_colorMap      = new WG_Color[m_maxPixelValue + 1];

            for (int i = 0; i < m_gradientSize; i++)
            {
                byte val = (byte)((float)(i * 255) / (float)(m_gradientSize));
                m_gradient[i] = new WG_Color(val, val, val);
            }

            for (int i = 0; i < m_maxPixelValue + 1; i++)
            {
                byte val = (byte)((float)(i * 255) / (float)(m_maxPixelValue));
                m_colorMap[i] = new WG_Color(val, val, val);
            }
        }
示例#3
0
        public double m_gain;          // value used to amplify pixel values


        public void SetMaxPixelValue(int maxPixelValue)
        {
            m_maxPixelValue = maxPixelValue;

            m_colorMap = new WG_Color[m_maxPixelValue + 1];

            for (int i = 0; i < m_maxPixelValue + 1; i++)
            {
                m_colorMap[i] = new WG_Color(0, 0, 0);
            }

            //m_controlPts.Add(new ColorControlPoint(0, 0));
            //m_controlPts.Add(new ColorControlPoint(100 / 3, m_gradientSize / 3));
            //m_controlPts.Add(new ColorControlPoint(100 * 2 / 3, m_gradientSize * 2 / 3));
            //m_controlPts.Add(new ColorControlPoint(100, m_gradientSize - 1));

            m_controlPts.Add(new ColorControlPoint(0, 0));
            m_controlPts.Add(new ColorControlPoint(0, 0));
            m_controlPts.Add(new ColorControlPoint(m_maxPixelValue, m_gradientSize - 1));
            m_controlPts.Add(new ColorControlPoint(m_maxPixelValue, m_gradientSize - 1));
        }
示例#4
0
        public ColorModel(ColorModelContainer cModelCont, int maxPixelValue = 65535, int gradientSize = 1024)
        {
            m_description  = cModelCont.Description;
            m_gradientSize = gradientSize;
            m_gain         = 1.0;

            m_controlPts = new ObservableCollection <ColorControlPoint>();
            m_stops      = new ObservableCollection <ColorStop>();

            m_gradient = new WG_Color[m_gradientSize];

            for (int i = 0; i < m_gradientSize; i++)
            {
                m_gradient[i] = new WG_Color(0, 0, 0);
            }

            foreach (ColorModelControlPointContainer pc in cModelCont.ControlPts)
            {
                m_controlPts.Add(new ColorControlPoint(pc.Value, pc.ColorIndex));
            }

            foreach (ColorModelStopContainer sc in cModelCont.Stops)
            {
                m_stops.Add(new ColorStop(sc.ColorIndex, new WG_Color(sc.Red, sc.Green, sc.Blue)));
            }

            //SetMaxPixelValue(maxPixelValue);
            m_maxPixelValue = maxPixelValue;
            m_colorMap      = new WG_Color[m_maxPixelValue + 1];

            for (int i = 0; i < m_maxPixelValue + 1; i++)
            {
                m_colorMap[i] = new WG_Color(0, 0, 0);
            }

            BuildColorGradient();

            BuildColorMap();
        }
示例#5
0
        public void InsertColorStop(int index, byte red, byte green, byte blue)
        {
            WG_Color  color = new WG_Color(red, green, blue);
            ColorStop cstop = new ColorStop(index, color);

            int position = 0;
            int maxIndex = m_gradientSize - 1;

            if (index == 0)
            {
                position = 0;
            }

            else if (index == maxIndex)
            {
                position = m_stops.Count();
            }

            else
            {
                for (int i = 0; i < m_stops.Count(); i++)
                {
                    if (index > m_stops[i].m_index)
                    {
                        position = i + 1;
                    }
                    else
                    {
                        break;
                    }
                }
            }


            m_stops.Insert(position, cstop);
        }
示例#6
0
 public ColorStop(int index, WG_Color color)
 {
     m_color = color;
     m_index = index;
 }