private string getBarCode(Bitmap bitmap, out Bitmap resultImage, out ArrayList resultBarCode) { string returnValue = String.Empty; float imageRotationDegree = ModuleConfiguration.Default_ImageRotationDegree; if (imageRotationDegree != 0) { Dictionary <string, object> rotationParams = ModuleConfiguration.Default_ImageRotationParameters; if ((rotationParams != null) && (rotationParams.Count > 0)) { int rotationAtPercentageOfImageWidth = (int)(rotationParams["RotationAtPercentageOfImageWidth"]); int rotationAtPercentageOfImageHeight = (int)(rotationParams["RotationAtPercentageOfImageHeight"]); bool isNoClip = (bool)(rotationParams["IsNoClip"]); bitmap = BarcodeUtility.RotateImage(bitmap, (bitmap.Width * (rotationAtPercentageOfImageWidth / 100)), (bitmap.Height * (rotationAtPercentageOfImageHeight / 100)), imageRotationDegree, isNoClip); } else { bitmap = BarcodeUtility.RotateImage(bitmap, imageRotationDegree); } } if (ModuleConfiguration.IsCheckingSkewAngle) { DeSkewUtility deSkewUtility = new DeSkewUtility(); deSkewUtility.New(bitmap); double skewAngle = -1.0 * deSkewUtility.GetSkewAngle(); bitmap = BarcodeUtility.RotateImage(bitmap, ((float)(skewAngle))); } ArrayList codesRead = new ArrayList(); BarcodeUtility.FullScanPage(ref codesRead, bitmap, ModuleConfiguration.Default_BarCodeScanningTimes); if (codesRead.Count > 0) { returnValue = codesRead[0].ToString(); } resultImage = bitmap; resultBarCode = codesRead; return(returnValue); }
private string getBarCode(out Bitmap rawImage, out ArrayList rawBarCode) { string returnValue = String.Empty; //byte[] imageBytes = new byte[1024]; //this.camera.GetImage(imageBytes, ModuleConfiguration.Default_TimeredBarCodeCameraTimeout); //MemoryStream stream = new MemoryStream(imageBytes); Bitmap bitmap = null;// = new Bitmap(stream); this.camera.GetImage(out bitmap, ModuleConfiguration.Default_TimeredBarCodeCameraTimeout); float imageRotationDegree = ModuleConfiguration.Default_ImageRotationDegree; if (imageRotationDegree != 0) { Dictionary <string, object> rotationParams = ModuleConfiguration.Defautl_ImageRotationParameters; if ((rotationParams != null) && (rotationParams.Count > 0)) { int rotationAtPercentageOfImageWidth = (int)(rotationParams["RotationAtPercentageOfImageWidth"]); int rotationAtPercentageOfImageHeight = (int)(rotationParams["RotationAtPercentageOfImageHeight"]); bool isNoClip = (bool)(rotationParams["IsNoClip"]); bitmap = BarcodeUtility.RotateImage(bitmap, (bitmap.Width * (rotationAtPercentageOfImageWidth / 100)), (bitmap.Height * (rotationAtPercentageOfImageHeight / 100)), imageRotationDegree, isNoClip); } else { bitmap = BarcodeUtility.RotateImage(bitmap, imageRotationDegree); } } ArrayList codesRead = new ArrayList(); BarcodeUtility.FullScanPage(ref codesRead, bitmap, ModuleConfiguration.Default_TimeredBarCodeCameraScanningTimes); if (codesRead.Count > 0) { returnValue = codesRead[0].ToString(); } rawImage = bitmap; rawBarCode = codesRead; return(returnValue); }