private void openToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.DefaultExt = "pal"; openFileDialog.Filter = "Palette Files (SCI or Microsfot RIFF)|*.pal"; openFileDialog.Multiselect = false; openFileDialog.Title = "Select a SCI or Microsoft Palette."; DialogResult r = openFileDialog.ShowDialog(); if (r == System.Windows.Forms.DialogResult.Cancel) { return; } if (File.Exists(openFileDialog.FileName)) { try { byte[] buffer = File.ReadAllBytes(openFileDialog.FileName); PalType type = PaletteTools.GetType(buffer); paletteControl1.CellWidth = 25; paletteControl1.CellHeight = 25; paletteControl1.FontSize = 4; paletteControl1.ShowPalette(PaletteTools.Load(buffer, type)); paletteControl1.Refresh(); } catch (Exception ex) { MessageBox.Show(string.Format("{0} : {1}", ex.Message, ex.StackTrace)); } } else { MessageBox.Show("Unknown Error"); } }
public static Color[] Load(byte[] buffer, PalType type, out short firstColor, out bool isTripleColors) { firstColor = 0; isTripleColors = true; switch (type) { case PalType.SCI: return(LoadSCIPalette(buffer, out firstColor, out isTripleColors)); case PalType.Microsoft: return(LoadMicrosoftPalette(buffer)); case PalType.Bitmap: return(LoadBMPPalette(buffer)); case PalType.SCI1: return(LoadSCIPalette(buffer, type, out firstColor, out isTripleColors)); default: return(new Color[0]); } }
public static Color[] Load(byte[] buffer, PalType type) { short first = 0; bool trip = false; switch (type) { case PalType.SCI: return(LoadSCIPalette(buffer, out first, out trip)); case PalType.Microsoft: return(LoadMicrosoftPalette(buffer)); case PalType.Bitmap: return(LoadBMPPalette(buffer)); case PalType.SCI1: return(LoadSCIPalette(buffer, type, out first, out trip)); default: return(new Color[0]); } }
public static Color[] LoadSCIPalette(byte[] buffer, PalType type, out short firstColor, out bool isTripleColors) { FileReader r = new FileReader(buffer); List <Color> colors = new List <Color>(); firstColor = 0; isTripleColors = true; switch (type) { case PalType.SCI1: { // Starts with a 256 byte block, hex values counting from 0 to 255 r.ReadBytes(256); r.ReadInt32(); //bs firstColor = (short)r.ReadInt32(); // is this really a int everywhere ? for (int i = 0; i < firstColor; i++) { colors.Add(Color.Black); } //colors[11] = fi for (int i = firstColor; i < 256; i++) { // this is a flagbit // 0 The entry is used // 4 Another color has been inexactly mapped to this one int flag = r.ReadByte(); // rgb colors int red = r.ReadByte(); int green = r.ReadByte(); int blue = r.ReadByte(); colors.Add(Color.FromArgb(red, green, blue)); } } break; default: break; } r.Close(); return(colors.ToArray()); }
/// <summary> /// Opens and loads selected PAL file in the palBox /// </summary> private void OpenPal() { if (File.Exists(palFile)) { palette.Clear(); try { byte[] buffer = File.ReadAllBytes(palFile); PalType type = PaletteTools.GetType(buffer); if (type == PalType.Unknown) { MessageBox.Show(string.Format("Unknown Type {0}", BitConverter.ToInt32(buffer, 0).ToString("X2"))); return; } LoadedColors = PaletteTools.Load(buffer, type); palInfoLbl.Text = string.Format("Palette type - {0}, {1} Colors", type, LoadedColors.Length); this.Text = defaultTxt + " - " + palFile; paletteControl1.ShowPalette(LoadedColors); ShowPalette(LoadedColors); } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { MessageBox.Show("Unknown Error"); } // Enable save if (picBox.Image != null) { saveAsBtn.Enabled = true; saveAsFileMenu.Enabled = true; } else { saveAsBtn.Enabled = false; saveAsFileMenu.Enabled = false; } }
/// <summary> /// Opens and loads selected PAL file in the palBox /// </summary> private void OpenPal(string palFile) { if (File.Exists(palFile)) { this.PaletteRects.Clear(); try { byte[] buffer = File.ReadAllBytes(palFile); PalType type = PaletteTools.GetType(buffer); if (type == PalType.Unknown) { MessageBox.Show(string.Format("Unknown Type {0}", BitConverter.ToInt32(buffer, 0).ToString("X2"))); return; } this.CurrentLoadedType = type; ShowPalette(PaletteTools.Load(buffer, type)); } catch (Exception ex) { MessageBox.Show(ex.Message); } } else { MessageBox.Show("Unknown Error"); } }
public static extern void gambatte_setdmgpalettecolor(IntPtr core, PalType palnum, uint colornum, uint rgb32);
/// <summary> /// Lets us know when our palette control loads a palette /// </summary> /// <param name="type"></param> /// <param name="colors"></param> private void paletteControl1_OnPaletteLoaded(PalType type, Color[] colors) { palInfoLbl.Text = string.Format("Palette type - {0}, {1} Colors", type, colors.Length); // Do we have a picture ? if not load us in the big screen too // hm i dunno if i wanna do that, but maybe }