public void InitScan() { ImageProc imgP = new ImageProc(); CommonDialogClass commonDialogClass = new CommonDialogClass(); DeviceIdCmb.SelectedIndex = DeviceCmb.SelectedIndex; try { if (DeviceCmb.Items.Count == 0) { MessageBox.Show("Please connect a scanner."); } Deskew _deskew = new Deskew(); scanSettings _scanSettings = new scanSettings(); List <System.Drawing.Image> images = null; images = WIAScanner.AutoScan((string)DeviceIdCmb.SelectedItem, Convert.ToInt32(dpiTxt.Text), (Convert.ToDouble(cropxTxt.Text)), (Convert.ToDouble(cropyTxt.Text)), (Convert.ToDouble(widthTxt.Text) * Convert.ToDouble(dpiTxt.Text)), (Convert.ToDouble(heightTxt.Text) * Convert.ToDouble(dpiTxt.Text)), (int)parseSettings("Brightness"), (int)parseSettings("Contrast"), (int)parseSettings("Color Mode")); selRect.Visibility = Visibility.Collapsed; foreach (System.Drawing.Image image in images) { if ((int)parseSettings("Bpp") == 1) { ScanView.Source = ImageProc.setPixelFormat1(ImageProc.ImgToBmpSource(image), PixelFormats.BlackWhite); saveImageAsFile(ImageProc.setPixelFormat2(ImageProc.ImgToBmpSource(image), System.Drawing.Imaging.PixelFormat.Format1bppIndexed)); } if ((int)parseSettings("Bpp") == 8) { BitmapSource img8bit = ImageProc.setPixelFormat1(ImageProc.ImgToBmpSource(image), PixelFormats.Gray8); ScanView.Source = img8bit; saveImageAsFile(ImageProc.BmpSource2Img(img8bit)); } if ((int)parseSettings("Bpp") == 24) { ScanView.Source = ImageProc.setPixelFormat1(ImageProc.ImgToBmpSource(image), PixelFormats.Bgr24); saveImageAsFile(ImageProc.setPixelFormat2(ImageProc.ImgToBmpSource(image), System.Drawing.Imaging.PixelFormat.Format24bppRgb)); } if ((int)parseSettings("Bpp") == 32) { ScanView.Source = ImageProc.setPixelFormat1(ImageProc.ImgToBmpSource(image), PixelFormats.Bgr32); saveImageAsFile(ImageProc.setPixelFormat2(ImageProc.ImgToBmpSource(image), System.Drawing.Imaging.PixelFormat.Format32bppRgb)); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "Unexpected Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void previewScan() { CommonDialogClass commonDialogClass = new CommonDialogClass(); DeviceIdCmb.SelectedIndex = DeviceCmb.SelectedIndex; try { if (DeviceCmb.Items.Count == 0) { MessageBox.Show("Please connect a scanner."); } List <System.Drawing.Image> images = WIAScanner.preScan((string)DeviceIdCmb.SelectedItem); foreach (System.Drawing.Image img in images) { //ScanView.Source = ImgToBmpSource(img); /*Bitmap bmp = new Bitmap(img); * Grayscale gs_fil = new Grayscale(0.2125, 0.7154, 0.0721); * Bitmap gs_Bmp = gs_fil.Apply(bmp); * DocumentSkewChecker skewCheck = new DocumentSkewChecker(); * double angle = skewCheck.GetSkewAngle(gs_Bmp); * RotateBilinear rotateFilter = new RotateBilinear(-angle); * rotateFilter.FillColor = System.Drawing.Color.White; * Bitmap rotatedImage = rotateFilter.Apply(gs_Bmp); * new ContrastStretch().ApplyInPlace(gs_Bmp); * new Threshold(180).ApplyInPlace(gs_Bmp); * //new Invert().ApplyInPlace(gs_Bmp); * BlobCounter bc = new BlobCounter(); * * bc.FilterBlobs = true; * bc.ProcessImage(gs_Bmp); * System.Drawing.Rectangle[] rects = bc.GetObjectsRectangles();*/ PreView.Source = ImageProc.ImgToBmpSource(img); //gs_Bmp.Save(userProfile + "\\Pictures\\TreshSample1.png", ImageFormat.Png); /* foreach (System.Drawing.Rectangle rect in rects) * { * cropxTxt.Text = (rect.Left).ToString(); * cropyTxt.Text = (rect.Top / 5).ToString(); * heightTxt.Text = (rect.Bottom).ToString(); * widthTxt.Text = (rect.Right / 45).ToString(); * }*/ } } catch (Exception ex) { MessageBox.Show(ex.Message, "Unexpected Error", MessageBoxButton.OK, MessageBoxImage.Error); } }
private void getDevices() { DeviceCmb.Items.Clear(); DeviceIdCmb.Items.Clear(); try { List <string> devices = WIAScanner.GetDevices(); List <string> deviceIds = WIAScanner.GetDevicesId(); foreach (string deviceId in deviceIds) { DeviceIdCmb.Items.Add(deviceId); } foreach (string device in devices) { DeviceCmb.Items.Add(device); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Unexpected Error", MessageBoxButton.OK, MessageBoxImage.Error); } }