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)); }