private void BitmapImportButton_Click(object sender, EventArgs eventArgs) { if (LastSelectedImageMetadata == null) { return; } try { using (var imageConverterWindow = new ImageConverterWindow(true, LastSelectedImageMetadata.Width, LastSelectedImageMetadata.Height)) { if (imageConverterWindow.ShowDialog() != DialogResult.OK) { return; } using (var monochrome = imageConverterWindow.GetConvertedImage()) { var imageData = BitmapProcessor.CreateRawFromBitmap(monochrome); ImagePixelGrid.CreateUndo(); ImagePixelGrid.Data = ImagePreviewPixelGrid.Data = ProcessImage(x => FirmwareImageProcessor.PasteImage(x, imageData), LastSelectedImageMetadata, true); } } } catch (Exception ex) { InfoBox.Show("Unable to import bitmap image.\n" + ex.Message); } }
private void LogoButton_Click(object sender, EventArgs e) { Bitmap logoBitmap; using (var imageConverterWindow = new ImageConverterWindow(true)) { if (imageConverterWindow.ShowDialog() != DialogResult.OK) { return; } logoBitmap = imageConverterWindow.GetConvertedImage(); if (logoBitmap == null) { return; } } using (logoBitmap) { var imageData = BitmapProcessor.CreateRawFromBitmap(logoBitmap); var block1ImageMetadata = new FirmwareImage1Metadata { Width = LogoWidth, Height = LogoHeight }; var block2ImageMetadata = new FirmwareImage2Metadata { Width = LogoWidth, Height = LogoHeight }; var block1ImageBytes = block1ImageMetadata.Save(imageData); var block2ImageBytes = block2ImageMetadata.Save(imageData); m_worker.RunWorkerAsync(new AsyncProcessWrapper(worker => UpdateLogoAsyncWorker(worker, block1ImageBytes, block2ImageBytes))); } }
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)) { if (bitmap.Width > 2048 || bitmap.Height > 2048) { InfoBox.Show("Selected images is too big. Choose an image that has dimension lower than 2048x2048."); return; } using (var scaledBitmap = BitmapProcessor.ScaleBitmapIfNecessary(bitmap, new Size(LastSelectedImageMetadata.Width, LastSelectedImageMetadata.Height))) using (var monochrome = BitmapProcessor.ConvertTo1Bit(scaledBitmap)) { var imageData = BitmapProcessor.CreateRawFromBitmap(monochrome); ImagePixelGrid.CreateUndo(); ImagePixelGrid.Data = ImagePreviewPixelGrid.Data = ProcessImage(x => FirmwareImageProcessor.PasteImage(x, imageData), LastSelectedImageMetadata, true); } } } catch (Exception ex) { InfoBox.Show("Unable to import bitmap image.\n" + ex.Message); } } }
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 = BitmapProcessor.CreateRawFromBitmap(croppedLetter, 0x00); result.Add(new Tuple <FirmwareImageMetadata, bool[, ]>(metadata, imageData)); } } } return(result); }