Ejemplo n.º 1
0
        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;
            }
            }
        }
Ejemplo n.º 2
0
        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);
        }