示例#1
0
        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 = "バーコード認識できません";
                    }
                }
            }
        }
示例#2
0
        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));
        }