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); }
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; }
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; }