Exemple #1
0
        public void CreateNewColourMap()
        {
            Type t = (Type)colourMapCombo.SelectedItem;
            //ConstructorInfo c = t.GetConstructor(new Type[] { });
            //object[] ps = new object[] { };

            object cmap = Activator.CreateInstance(t);

            ColourMap = (IColourMap)cmap;

            // Add black and white, because they are awesome.
            Color White = Color.FromArgb(255, 255, 255, 255);
            Color Black = Color.FromArgb(255, 0, 0, 0);

            if (!ColourMap.Colours.ContainsKey(White))
            {
                SimpleColour s = new SimpleColour("White", ColourMap.Colours.Count, White);
                ColourMap.Colours[White] = s;
            }
            if (!ColourMap.Colours.ContainsKey(Black))
            {
                SimpleColour s = new SimpleColour("Black", ColourMap.Colours.Count, Black);
                ColourMap.Colours[Black] = s;
            }
            ColourMap.Colours[White].IsChecked = true;
            ColourMap.Colours[Black].IsChecked = true;
        }
        public void UpdateColourMap(IColourMap cmap)
        {
            enableEvents = false;
            Color previouslySelected = Color.Wheat;
            bool  pSel = false;

            if (listView.SelectedIndices.Count > 0)
            {
                pSel = true;
                previouslySelected = listView.SelectedItems[0].BackColor;
            }
            mColourMap = cmap;
            if (mColourMap.Count > 0)
            {
                listView.Items.Clear();
                foreach (KeyValuePair <Color, IColourInfo> pair in mColourMap.Colours)
                {
                    ListViewItem lvi = new ListViewItem(pair.Value.Name);
                    lvi.BackColor = pair.Value.Colour;
                    lvi.Checked   = pair.Value.IsChecked;
                    lvi.Tag       = pair.Value;
                    listView.Items.Add(lvi);
                }
                enableEvents = true;
                if (pSel && cmap.Colours.ContainsKey(previouslySelected))
                {
                    SelectColour(previouslySelected);
                }
            }
            enableEvents = true;
        }
        /// <summary>
        /// Convert colours to fit a given colourmap
        /// </summary>
        /// <param name="cmap">The colourmap to fit.</param>
        public void ReduceColourDepth(IColourMap cmap)
        {
            ColourMap          = cmap;
            this.TargetColours = 0;
            Bitmap          saved = new Bitmap(mOutput);
            ProgressBarForm prog  = new ProgressBarForm("Fitting Image to Colour Map...");

            prog.CanCancel = false;
            prog.StartWorker(ReduceColourDepth, this);
            Console.WriteLine("ReduceColourDepth: final number of colours = " + ColourMap.Count);
        }
Exemple #4
0
 private void undoToolStripMenuItem_Click(object sender, EventArgs e)
 {
     for (int i = 0; i < maxUndos; i++)
     {
         if (undoRecolours[i] != null)
         {
             Console.Write("Undo: " + i + ", " + undoRecolours[i].Tag);
             if (undoRecolours[i].Tag != null)
             {
                 IColourMap cmap = (IColourMap)undoRecolours[i].Tag;
                 Console.WriteLine(", " + cmap.Count);
             }
             else
             {
                 Console.WriteLine(", null");
             }
         }
         else
         {
             Console.WriteLine("Undo: " + i + ", null, null");
         }
     }
     if (undoRecolours[0] != null)
     {
         Console.WriteLine("Undo tag: " + undoRecolours[0].Tag);
         // shift undo arrays to the left.
         ColourMap       = (IColourMap)undoRecolours[0].Tag;
         recolouredImage = undoRecolours[0];
         for (int i = 0; i < maxUndos - 1; i++)
         {
             undoRecolours[i] = undoRecolours[i + 1];
             //undoMaps[i] = undoMaps[i + 1];
         }
         undoRecolours[maxUndos - 1] = null;
         //undoMaps[maxUndos - 1] = null;
         UpdateColourMap();
         RedrawTab2Images();
     }
 }
 public ImagingTool(Image inputImage, IColourMap cmap)
 {
     InputImage = (Bitmap)inputImage;
     mOutput = InputImage;
     ColourMap = cmap;
 }
 /// <summary>
 /// Convert colours to fit a given colourmap
 /// </summary>
 /// <param name="cmap">The colourmap to fit.</param>
 public void ReduceColourDepth(IColourMap cmap)
 {
     ColourMap = cmap;
     this.TargetColours = 0;
     Bitmap saved = new Bitmap(mOutput);
     ProgressBarForm prog = new ProgressBarForm("Fitting Image to Colour Map...");
     prog.CanCancel = false;
     prog.StartWorker(ReduceColourDepth, this);
     Console.WriteLine("ReduceColourDepth: final number of colours = " + ColourMap.Count);
 }
 public ColourMapViewer(IColourMap cmap)
 {
     InitializeComponent();
     UpdateColourMap(cmap);
 }
        public void UpdateColourMap(IColourMap cmap)
        {
            enableEvents = false;
            Color previouslySelected = Color.Wheat;
            bool pSel = false;
            if (listView.SelectedIndices.Count > 0)
            {
                pSel = true;
                previouslySelected = listView.SelectedItems[0].BackColor;
            }
            mColourMap = cmap;
            if (mColourMap.Count > 0)
            {
                listView.Items.Clear();
                foreach (KeyValuePair<Color, IColourInfo> pair in mColourMap.Colours)
                {
                    ListViewItem lvi = new ListViewItem(pair.Value.Name);
                    lvi.BackColor = pair.Value.Colour;
                    lvi.Checked = pair.Value.IsChecked;
                    lvi.Tag = pair.Value;
                    listView.Items.Add(lvi);

                }
                enableEvents = true;
                if (pSel && cmap.Colours.ContainsKey(previouslySelected))
                {
                    SelectColour(previouslySelected);
                }
            }
            enableEvents = true;
        }
 public ImagingTool(Image inputImage, IColourMap cmap)
 {
     InputImage = (Bitmap)inputImage;
     mOutput    = InputImage;
     ColourMap  = cmap;
 }
 public ColourMapViewer(IColourMap cmap)
 {
     InitializeComponent();
     UpdateColourMap(cmap);
 }