private void button2_Click(object sender, EventArgs e) { if (this.SelectedRow != -1) { PictureBox pic = this.tableLayoutPanel1.GetControlFromPosition(1, this.SelectedRow) as PictureBox; if (pic == null) { return; } counter.Start("BarCode Decode"); //Bitmap resultImg = new Bitmap(pic.Image); var docSdk = DocumentSDKInterface.DocumentSDKFactory.GetDocumentSDK(); //Image chgimg = new Bitmap( pic.Image); //Image resultImg = docSdk.MakeBinByThresh(chgimg, null, null); Bitmap orgImg = (Bitmap)pic.Image; using (Bitmap chgimg = orgImg.Clone(new Rectangle(0, 0, orgImg.Width, orgImg.Height), orgImg.PixelFormat)) { Bitmap resultImg = chgimg; BarcodeSDK.QRBarcodeReader QRReader = new BarcodeSDK.QRBarcodeReader(); var result = QRReader.Decode(resultImg); if (result.IsSuccess) { this.txtResult.Text = "PureBarcode:" + QRReader.Options.PureBarcode.ToString() + "\r\n"; this.txtResult.Text += "バーコード種別:" + result.BarcodeFormat.ToString() + "\r\n" + result.RawText; counter.End(); Image rangeImg; if (result.ResultRegion.HasValue) { rangeImg = DrawRange(resultImg, result.ResultRegion.Value); } else { rangeImg = new Bitmap(resultImg); } this.pictureBox1.SizeMode = PictureBoxSizeMode.AutoSize; pictureBox1.Image = rangeImg; } else { this.txtResult.Text = "バーコード認識できません"; } } } }
private void mnuEncode_Click(object sender, EventArgs e) { Image orgImg = this.canvasPicture1.Image; if (orgImg == null) { MessageBox.Show(this, "画像を選択してください"); return; } int count = 0; if (canvasPicture1.Frames.Items.Count == 0) { Bitmap resultImg = (Bitmap)orgImg; BarcodeSDK.QRBarcodeReader QRReader = new BarcodeSDK.QRBarcodeReader(); var results = QRReader.DecodeMultiple(resultImg); foreach (var result in results) { if (result.IsSuccess && result.ResultRegion.HasValue) { Rectangle rect = result.ResultRegion.Value; BarcodeFrame frame = new BarcodeFrame(result.ResultRegion.Value); if (frame.IsTooSmall) { if (rect.Width < 8) { rect.Inflate(8, 0); } if (rect.Height < 8) { rect.Inflate(0, 8); } frame.Rect = rect; } frame.RawText = result.RawText; frame.BarcodeFormat = result.BarcodeFormat; frame.CanCreate = false; this.canvasPicture1.Frames.Items.Add(frame); this.canvasPicture1.Refresh(); count++; } } } else { foreach (BarcodeFrame frame in this.canvasPicture1.Frames.Items) { Bitmap resultImg = (Bitmap)orgImg; if (frame.BarcodeImage == null) { BarcodeSDK.QRBarcodeReader QRReader = new BarcodeSDK.QRBarcodeReader(); Bitmap cutImg = (Bitmap)CutImage(frame.Rect, resultImg); if (cutImg == null) { continue; } var result = QRReader.Decode(cutImg); if (result.IsSuccess) { frame.RawText = result.RawText; frame.BarcodeFormat = result.BarcodeFormat; frame.CanCreate = false; count++; } } } } MessageBox.Show(string.Format("認識完了しました。{0}件認識できました", count)); }