예제 #1
0
        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);
                }
            }
        }