public BackdropModel(DatImage image) { if (image == null) { throw new ArgumentNullException(nameof(image)); } this.Width = image.Width; this.Image = image; }
private void SaveGroupDat_Click(object sender, RoutedEventArgs e) { if (this.GroupsList.SelectedIndex == -1) { return; } var dialog = new SaveFileDialog(); dialog.AddExtension = true; dialog.DefaultExt = ".dat"; dialog.Filter = "DAT files (*.dat)|*.dat"; string fileName; if (dialog.ShowDialog(this) == true) { fileName = dialog.FileName; } else { return; } var groups = this.GroupsList.SelectedItems; this.RunBusyAction(disp => { var dat = new DatFile(); foreach (DatGroup group in groups) { var datGroup = new DatGroup(group.GroupId); dat.Groups.Add(datGroup); foreach (DatImage image in group.Images) { DatImage datImage = DatImage.FromMemory( image.GroupId, image.ImageId, image.Format, image.Width, image.Height, image.ColorsCount, image.GetRawData()); datGroup.Images.Add(datImage); } } dat.Save(fileName); }); }
private void AddImage_Click(object sender, RoutedEventArgs e) { var group = this.GroupsList.SelectedItem as DatGroup; if (group == null) { return; } var dialog = new OpenFileDialog(); dialog.CheckFileExists = true; dialog.DefaultExt = ".png"; dialog.Filter = "Images (*.png, *.bmp, *.jpg)|*.png;*.bmp;*.jpg|PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp|JPG files (*.jpg)|*.jpg"; string fileName; if (dialog.ShowDialog(this) == true) { fileName = dialog.FileName; } else { return; } int imageId = group.Images.Count == 0 ? 0 : group.Images.Max(t => t.ImageId) + 1; this.RunBusyAction(disp => { try { var image = DatImage.FromFile(group.GroupId, (short)imageId, fileName); image.ConvertToFormat24(); group.Images.Add(image); disp(() => this.DatFile = this.DatFile); disp(() => this.ImagesList.SelectedIndex = this.ImagesList.Items.Count - 1); } catch (Exception ex) { disp(() => MessageBox.Show(this, ex.Message, this.Title, MessageBoxButton.OK, MessageBoxImage.Error)); } }); }
private void NewImage_Click(object sender, RoutedEventArgs e) { var group = this.GroupsList.SelectedItem as DatGroup; if (group == null) { return; } int imageId = group.Images.Count == 0 ? 0 : group.Images.Max(t => t.ImageId) + 1; this.RunBusyAction(disp => { var image = new DatImage(group.GroupId, (short)imageId); group.Images.Add(image); disp(() => this.DatFile = this.DatFile); disp(() => this.ImagesList.SelectedIndex = this.ImagesList.Items.Count - 1); }); }
public static unsafe bool GetDATImageMetadata(int GroupId, int ImageId, short *Width, short *Height, byte *Format) { if (m_DATFile == null) { Trace.WriteLine("[DBG] [C#] Load a DAT file first"); *Width = 0; *Height = 0; *Format = 0; return(false); } IList <DatGroup> groups = m_DATFile.Groups; foreach (var group in groups) { if (group.GroupId == GroupId) { IList <DatImage> images = group.Images; foreach (var image in images) { if (image.ImageId == ImageId) { // Release the previous cached image m_DATImage = null; // Cache the current image m_DATImage = image; // Populate the output values *Width = image.Width; *Height = image.Height; *Format = (byte)image.Format; if (m_Verbose) { Trace.WriteLine("[DBG] [C#] Found " + GroupId + "-" + ImageId + ", " + "MetaData: (" + image.Width + ", " + image.Height + "), Type: " + image.Format); } return(true); } } } } return(false); }
private void SaveImage_Click(object sender, RoutedEventArgs e) { var images = this.ImagesList.SelectedItems; if (images.Count == 0) { return; } DatImage image = images[0] as DatImage; var dialog = new SaveFileDialog(); dialog.AddExtension = true; dialog.DefaultExt = ".png"; dialog.Filter = "Images (*.png, *.bmp)|*.png;*.bmp|PNG files (*.png)|*.png|BMP files (*.bmp)|*.bmp"; dialog.FileName = image.GroupId + "-" + image.ImageId; string fileName, directory, extension; if (dialog.ShowDialog(this) == true) { fileName = dialog.FileName; directory = fileName.Substring(0, fileName.LastIndexOf('\\')); extension = fileName.Substring(fileName.LastIndexOf('.')); } else { return; } this.RunBusyAction(disp => { foreach (DatImage img in images) { img.Save(directory + '\\' + img.GroupId + "-" + img.ImageId + extension); } }); }
public static bool LoadDATFile([MarshalAs(UnmanagedType.LPStr)] string sDatFileName) { // First, let's check if this DAT file is already loaded: if (m_DATFile != null && m_DATFile.FileName.ToLower().Equals(sDatFileName.ToLower())) { if (m_Verbose) { Trace.WriteLine("[DBG] [C#] DAT File " + sDatFileName + " already loaded"); } return(true); } if (m_Verbose) { Trace.WriteLine("[DBG] [C#] Loading File: " + sDatFileName); } try { m_DATImage = null; // Release any previous instances m_DATFile = null; // Release any previous instances m_DATFile = DatFile.FromFile(sDatFileName); if (m_DATFile == null) { if (m_Verbose) { Trace.WriteLine("[DBG] [C#] Failed when loading: " + sDatFileName); } return(false); } } catch (Exception e) { Trace.WriteLine("[DBG] [C#] Exception " + e + " when opening " + sDatFileName); m_DATFile = null; } return(true); }