public IList <Tuple <FirmwareImageMetadata, bool[, ]> > GetImportedData() { var result = new List <Tuple <FirmwareImageMetadata, bool[, ]> >(); using (var surface = DrawSurfaceInRealScale()) { foreach (var letterBox in m_letters) { var metadata = letterBox.Metadata; var rect = letterBox.Rect; var cropRect = new Rectangle(rect.X + 1, rect.Y + 1, rect.Width - 1, rect.Height - 1); using (var croppedLetter = FirmwareImageProcessor.CropImage(surface, cropRect)) { var imageData = FirmwareImageProcessor.ImportBitmap(croppedLetter, 0x00); result.Add(new Tuple <FirmwareImageMetadata, bool[, ]>(metadata, imageData)); } } } return(result); }
private void BitmapImportButton_Click(object sender, EventArgs eventArgs) { if (LastSelectedImageMetadata == null) { return; } using (var op = new OpenFileDialog { Filter = Consts.BitmapImportFilter }) { if (op.ShowDialog() != DialogResult.OK) { return; } try { var bitmapFile = op.FileName; using (var bitmap = (Bitmap)Image.FromFile(bitmapFile, true)) { if (bitmap.Width > Consts.MaximumImageWidthAndHeight || bitmap.Height > Consts.MaximumImageWidthAndHeight) { InfoBox.Show("Image is too big. Image width and height must be lower or equals to {0} pixels.", Consts.MaximumImageWidthAndHeight); return; } var imageData = FirmwareImageProcessor.ImportBitmap(bitmap); ProcessImage(x => imageData, LastSelectedImageMetadata, true); ImageListBox_SelectedValueChanged(ImageListBox, EventArgs.Empty); } } catch (Exception ex) { InfoBox.Show("Unable to import bitmap image.\n" + ex.Message); } } }