private System.Drawing.Imaging.ImageFormat getGDIPlusImageFormat(MES.Core.Parameter.ImageOutputFormat imageFormat) { switch (imageFormat) { case MES.Core.Parameter.ImageOutputFormat.BMP: { return(System.Drawing.Imaging.ImageFormat.Bmp); //break; } case MES.Core.Parameter.ImageOutputFormat.JPEG: { return(System.Drawing.Imaging.ImageFormat.Jpeg); //break; } case MES.Core.Parameter.ImageOutputFormat.PNG: { return(System.Drawing.Imaging.ImageFormat.Png); //break; } case MES.Core.Parameter.ImageOutputFormat.GIF: { return(System.Drawing.Imaging.ImageFormat.Gif); //break; } default: { return(System.Drawing.Imaging.ImageFormat.Bmp); //break; } } }
public DataPair Compute(DataPair Pair) { DataPair returnValue = new DataPair() { Identifier = Pair.Identifier, Items = new List <DataItem>() }; if (Pair.Items != null) { foreach (DataItem item in Pair.Items) { returnValue.Items.Add(new DataItem() { DataBytes = item.DataBytes, DataParameters = new List <DataParameter>(item.DataParameters.ToArray()), DeviceID = item.DeviceID, LocationID = item.LocationID }); } } Bitmap bitmap = null; ArrayList codesRead = null; using (MemoryStream stream = new MemoryStream(returnValue.Items[0].DataBytes)) { bitmap = Bitmap.FromStream(stream) as Bitmap; } this.getBarCode(bitmap, out bitmap, out codesRead); byte[] buffer = null; using (MemoryStream stream = new MemoryStream()) { MES.Core.Parameter.ImageOutputFormat imageOutputFormat = (MES.Core.Parameter.ImageOutputFormat)(Enum.Parse(typeof(MES.Core.Parameter.ImageOutputFormat), Pair.Items[0].GetParameterValue("ImageOutputFormat"))); System.Drawing.Imaging.ImageFormat imageFormat = this.getGDIPlusImageFormat(imageOutputFormat); bitmap.Save(stream, imageFormat); buffer = stream.GetBuffer(); } returnValue.Items[0].DataBytes = buffer; returnValue.Items[0].Size = buffer.Length; returnValue.Items[0].CreationTime = DateTime.Now; returnValue.Items[0].Description = "Barcodes_Computed"; if ((codesRead != null) && (codesRead.Count > 0)) { string barcodes = ""; for (int i = 0; i < codesRead.Count; i++) { if (codesRead[i] != null) { barcodes += codesRead[i].ToString(); } if (i != (codesRead.Count - 1)) { barcodes += ","; } } returnValue.Items[0].DataParameters.Add(new DataParameter() { Name = "BarCodes", Value = barcodes }); } returnValue.Items[0].DataParameters.AddRange(new DataParameter[] { new DataParameter() { Name = "BarCodeScanningTimes", Value = ModuleConfiguration.Default_BarCodeScanningTimes.ToString() }, new DataParameter() { Name = "ImageRotationDegree", Value = ModuleConfiguration.Default_ImageRotationDegree.ToString() }, new DataParameter() { Name = "FailureRetryTimes", Value = ModuleConfiguration.Default_FailureRetryTimes.ToString() } }); return(returnValue); }