예제 #1
0
 public void SetColormapParams(ColorMapTypes colorMapType, string param)
 {
     if (_modelState.ColorMap.Type != colorMapType || _modelState.ColorMap.Param != param)
     {
         _modelState.ColorMap.Type  = colorMapType;
         _modelState.ColorMap.Param = param;
         IColorMap cm = ColorMapFactory.Create(colorMapType, param);
         if (cm != null)
         {
             cm.Initialize();
             if (CurrentImage != null)
             {
                 CurrentImage.ColorMap = cm;
                 RaiseImageChanged();
             }
         }
     }
 }
예제 #2
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        #region color mapping
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            // we get this event when item is deselected first (in which case selected indices count will be zero)
            if (listView1.SelectedIndices.Count > 0 && listView1.Items[listView1.SelectedIndices[0]].Selected)
            {
                string[] cmaps =
                {
                    "Gray",     "Red", "Green", "Blue",      "A",     "B",   "BB",  "HE",       "Heat",    "Cool", "Rainbow",
                    "Standard", "I8",  "AIPS0", "Staircase", "Color", "SLS", "HSV", "Advanced", "RGBFile", "None"
                };

                ColorMapTypes cp = (ColorMapTypes)Enum.Parse(typeof(ColorMapTypes), cmaps[listView1.SelectedIndices[0]]);
                switch (cp)
                {
                case ColorMapTypes.RGBFile:
                    // showing dialog while inside this event handler miss things up. schedule
                    // an event to take care of showing the dialog to break this link
                    this.BeginInvoke(new EventHandler(ShowFileDialog), new object[] { sender, e });
                    // I return to avoid executing the code below as the logic will continue in the
                    // ShowFileDialog event above.
                    break;

                case ColorMapTypes.Advanced:
                    // if we already in advanced no need to go to advanced tab. perhaps User wants
                    // to change it from colormap
                    if (_model.ColorMapType != ColorMapTypes.Advanced)
                    {
                        tabControl1.SelectedTab = tabControl1.TabPages[2];
                    }
                    break;

                default:
                    _colorMapListViewSelectedIndex = listView1.SelectedIndices[0];
                    if (cp != ColorMapTypes.None)
                    {
                        _model.SetColormapParams(cp, "");
                        ResetContrastBias();
                    }
                    break;
                }
            }
        }
예제 #3
0
 /// <summary>
 /// Sets the ColorMapType property, available only to objects in the same assembly as TargaHeader.
 /// </summary>
 /// <param name="eColorMapType">One of the ColorMapType enumeration values.</param>
 internal protected void SetColorMapType(ColorMapTypes eColorMapType)
 {
     this.eColorMapType = eColorMapType;
 }
예제 #4
0
파일: ColorMap.cs 프로젝트: bluephoton/najm
 static public IColorMap Create(ColorMapTypes cp)
 {
     return(ColorMapFactory.Create(cp, ""));
 }
예제 #5
0
파일: ColorMap.cs 프로젝트: bluephoton/najm
        // param is a colorMapFile for file color maps or LI points for LI color maps
        static public IColorMap Create(ColorMapTypes cp, string param)
        {
            IColorMap cpi = null;

            switch (cp)
            {
            case ColorMapTypes.Gray:
                cpi = new GrayColorMap();
                break;

            case ColorMapTypes.Red:
                cpi = new RedColorMap();
                break;

            case ColorMapTypes.Green:
                cpi = new GreenColorMap();
                break;

            case ColorMapTypes.Blue:
                cpi = new BlueColorMap();
                break;

            case ColorMapTypes.A:
                cpi = new AColorMap();
                break;

            case ColorMapTypes.B:
                cpi = new BColorMap();
                break;

            case ColorMapTypes.BB:
                cpi = new BBColorMap();
                break;

            case ColorMapTypes.HE:
                cpi = new HEColorMap();
                break;

            case ColorMapTypes.Heat:
                cpi = new HeatColorMap();
                break;

            case ColorMapTypes.Cool:
                cpi = new CoolColorMap();
                break;

            case ColorMapTypes.Rainbow:
                cpi = new RainbowColorMap();
                break;

            case ColorMapTypes.Standard:
                cpi = new StandardColorMap();
                break;

            case ColorMapTypes.I8:
                cpi = new I8ColorMap();
                break;

            case ColorMapTypes.AIPS0:
                cpi = new AIPS0ColorMap();
                break;

            case ColorMapTypes.Staircase:
                cpi = new StaircaseColorMap();
                break;

            case ColorMapTypes.Color:
                cpi = new ColorColorMap();
                break;

            case ColorMapTypes.SLS:
                cpi = new SLSColorMap();
                break;

            case ColorMapTypes.HSV:
                cpi = new HSVColorMap();
                break;

            case ColorMapTypes.RGBFile:
                if (string.IsNullOrEmpty(param))
                {
                    throw new ArgumentNullException("Custom Map file name is not valid");
                }
                cpi = new FileColorMap(param);
                break;

            case ColorMapTypes.Advanced:
            {
                if (string.IsNullOrEmpty(param))
                {
                    throw new ArgumentNullException("LI points are missing");
                }
                // extract color values
                string[] LIPoitns = param.Split(new char[] { ';' });
                if (LIPoitns.Length != 3 ||
                    string.IsNullOrEmpty(LIPoitns[0]) ||
                    string.IsNullOrEmpty(LIPoitns[1]) ||
                    string.IsNullOrEmpty(LIPoitns[2]))
                {
                    throw new ArgumentNullException("Invalid LI points");
                }
                cpi = new CustomLIColorMap(LIPoitns[0], LIPoitns[1], LIPoitns[2]);
            }
            break;

            default:
                break;
            }
            return(cpi);
        }