Exemplo n.º 1
0
        private void AddMagicWand(LeadPoint MagicWandPoint)
        {
            ImageViewer imageViewer = this.ImageViewer;

            LeadMatrix  MyMatrix = imageViewer.ImageTransform;
            Transformer t        = new Transformer(new System.Drawing.Drawing2D.Matrix((float)MyMatrix.M11, (float)MyMatrix.M12, (float)MyMatrix.M21, (float)MyMatrix.M22, (float)MyMatrix.OffsetX, (float)MyMatrix.OffsetY));

            LeadPoint pt = MagicWandPoint;

            pt = imageViewer.Image.PointToImage(RasterViewPerspective.TopLeft, pt);

            PointF ptF = t.PointToLogical(new PointF(pt.X, pt.Y));

            RasterColor lowerColor = new RasterColor(Threshold, Threshold, Threshold);
            RasterColor upperColor = new RasterColor(Threshold, Threshold, Threshold);

            if (((int)ptF.X > imageViewer.Image.Width) || ((int)ptF.Y > imageViewer.Image.Height))
            {
                return;
            }
            else
            {
                if (((int)ptF.X > 0) && ((int)ptF.Y > 0))
                {
                    imageViewer.Image.AddMagicWandToRegion((int)ptF.X, (int)ptF.Y, lowerColor, upperColor, RasterRegionCombineMode.Set);
                    imageViewer.ActiveItem.ImageRegionToFloater();
                    imageViewer.Image.SetRegion(null, null, RasterRegionCombineMode.Set);
                }
            }
        }
        public static void SetControlBorder(FormFieldControl fieldControl, RasterColor borderColor, int borderWidth, int borderStyle)
        {
            fieldControl.BorderThickness = borderWidth;
            fieldControl.BorderColor     = Color.FromArgb(borderColor.A, borderColor.R, borderColor.G, borderColor.B);

            switch (borderStyle)
            {
            case PDFFormField.BorderStyleSolid:
                fieldControl.FieldBorderStyle = FieldBorderStyle.Solid;
                break;

            case PDFFormField.BorderStyleDashed:
                fieldControl.FieldBorderStyle = FieldBorderStyle.Dashed;
                break;

            case PDFFormField.BorderStyleBeveled:
                fieldControl.FieldBorderStyle = FieldBorderStyle.Beveled;
                break;

            case PDFFormField.BorderStyleInset:
                fieldControl.FieldBorderStyle = FieldBorderStyle.Inset;
                break;

            case PDFFormField.BorderStyleUnderline:
                fieldControl.FieldBorderStyle = FieldBorderStyle.Underlined;
                break;
            }
        }
Exemplo n.º 3
0
        private void _btnOk_Click(object sender, System.EventArgs e)
        {
            // Set the new values for the selected RotateCommandFlags flags and apply to the loaded image.
            Angle = (int)_numAngle.Value * 100;

            Flags = RotateCommandFlags.None;

            if (_cbResize.Checked)
            {
                Flags |= RotateCommandFlags.Resize;
            }

            if (_rbButtonResample.Checked)
            {
                Flags |= RotateCommandFlags.Resample;
            }

            if (_rbButtonBicubic.Checked)
            {
                Flags |= RotateCommandFlags.Bicubic;
            }

            _initialAngle     = Angle;
            _initialFlags     = Flags;
            _initialFillColor = FillColor;
        }
Exemplo n.º 4
0
        private void _btnOk_Click(object sender, System.EventArgs e)
        {
            Angle = (int)_numAngle.Value * 100;

            Flags = RotateCommandFlags.None;

            if (_cbResize.Checked)
            {
                Flags |= RotateCommandFlags.Resize;
            }

            if (_rbButtonResample.Checked)
            {
                Flags |= RotateCommandFlags.Resample;
            }

            if (_rbButtonBicubic.Checked)
            {
                Flags |= RotateCommandFlags.Bicubic;
            }

            _initialAngle     = Angle;
            _initialFlags     = Flags;
            _initialFillColor = FillColor;
        }
Exemplo n.º 5
0
        private void _btnOk_Click(object sender, EventArgs e)
        {
            if (_numLow.Value >= _numHigh.Value)
            {
                Messager.ShowWarning(this, _lblMsg.Text);
                DialogResult = DialogResult.None;
                return;
            }

            Low            = (int)_numLow.Value;
            High           = (int)_numHigh.Value;
            _InColorLevel  = (int)_numInColorLevel.Value;
            _OutColorLevel = (int)_numOutColorLevel.Value;

            ChannelType ct = (ChannelType)_cbChannel.SelectedItem;

            Channel = ct.Flags;

            _initialLow     = Low;
            _initialHigh    = High;
            _initialChannel = 0;

            if (_isGray)
            {
                OutColor = new RasterColor(_OutColorLevel, _OutColorLevel, _OutColorLevel);
                InColor  = new RasterColor(_InColorLevel, _InColorLevel, _InColorLevel);
            }
        }
Exemplo n.º 6
0
        private void DeskewDailog_Load(object sender, EventArgs e)
        {
            DeskewCommand command = new DeskewCommand();

            _initialFillColorLevel = 0;
            _initialFlags          = command.Flags;

            FillColorLevel = _initialFillColorLevel;
            Flags          = _initialFlags;

            _rbFill.Checked          = (Flags & DeskewCommandFlags.FillExposedArea) == DeskewCommandFlags.FillExposedArea;
            _rbNoFill.Checked        = (Flags & DeskewCommandFlags.DoNotFillExposedArea) == DeskewCommandFlags.DoNotFillExposedArea;
            _numFillColorLevel.Value = FillColorLevel;
            FillColor = RasterColor.Black;
            _pnlRevColor.BackColor = Color.Black;


            if (_isGray)
            {
                _pnlLevel.Visible = true;
                _pnlColor.Visible = false;
            }
            else
            {
                _pnlLevel.Visible = false;
                _pnlColor.Visible = true;
            }
        }
Exemplo n.º 7
0
        private void _pnlPalette_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            for (int i = 0; i < Palette.Length; i++)
            {
                if (GetColorRectangle(i).Contains(e.X, e.Y))
                {
                    RasterColor color = Palette[i];
                    _lblCurrentColor.BackColor = Converters.ToGdiPlusColor(color);
                    Color foreColor = Color.FromArgb(
                        (byte)((color.R + 128) % 256),
                        (byte)((color.G + 128) % 256),
                        (byte)((color.B + 128) % 256));
                    _lblCurrentColor.ForeColor = foreColor;
                    _lblCurrentColor.Text      = string.Format(DemosGlobalization.GetResxString(GetType(), "Resx_Index") + " = {0} : {1}", i, color.ToString());
                    return;
                }
            }

            if (_lblCurrentColor.BackColor != SystemColors.Control)
            {
                _lblCurrentColor.BackColor = SystemColors.Control;
            }
            if (_lblCurrentColor.ForeColor != SystemColors.ControlText)
            {
                _lblCurrentColor.BackColor = SystemColors.ControlText;
            }
            if (_lblCurrentColor.Text != string.Empty)
            {
                _lblCurrentColor.Text = string.Empty;
            }
        }
        private void TryAddFloater(ImageViewerItem item)
        {
            PDF417BarcodeData barcodeData = (PDF417BarcodeData)BarcodeData.CreateDefaultBarcodeData(BarcodeSymbology.PDF417);

            barcodeData.SetData(_data);
            _engine.Writer.CalculateBarcodeDataBounds(LeadRect.Empty,
                                                      item.Image.XResolution,
                                                      item.Image.YResolution,
                                                      barcodeData,
                                                      _writeOptions);
            if (barcodeData.Rect.Width <= item.Image.Width && barcodeData.Rect.Height <= item.Image.Height)
            {
                _bigEnoughForBarcode    = true;
                this.ImageViewer.Cursor = System.Windows.Forms.Cursors.Default;
                RasterImage floaterImage = RasterImage.Create(barcodeData.Rect.Width,
                                                              barcodeData.Rect.Height,
                                                              32,
                                                              Math.Max(item.Image.XResolution, item.Image.YResolution),
                                                              RasterColor.Create(0, 255, 255, 255));

                _engine.Writer.WriteBarcode(floaterImage, barcodeData, _writeOptions);
                item.Floater        = floaterImage;
                item.FloaterOpacity = 0.5;
            }
            else
            {
                this.ImageViewer.Cursor = System.Windows.Forms.Cursors.No;
                _bigEnoughForBarcode    = false;
            }
        }
Exemplo n.º 9
0
        public void SetZone(IOcrPage ocrPage, int zoneIndex, bool isVisible, bool isNameVisible)
        {
            _ocrPage   = ocrPage;
            _zoneIndex = zoneIndex;

            IsVisible         = isVisible;
            mylabel.IsVisible = isNameVisible;

            if (_ocrPage != null && _zoneIndex >= 0 && _zoneIndex < _ocrPage.Zones.Count)
            {
                OcrZone zone = _ocrPage.Zones[_zoneIndex];
                if (string.IsNullOrEmpty(zone.Name))
                {
                    mylabel.Text = "Zone " + (_zoneIndex + 1).ToString();
                }
                else
                {
                    mylabel.Text = zone.Name;
                }

                if (zone.ZoneType == OcrZoneType.None || zone.ZoneType == OcrZoneType.Graphic || zone.ZoneType == OcrZoneType.Barcode)
                {
                    RasterColor color = RasterColorConverter.FromColor(Color.FromArgb(32, Color.Yellow));
                    this.Fill   = AnnSolidColorBrush.Create(color.ToString());//Color.FromArgb(32, Color.Yellow)
                    this.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Blue"), new LeadLengthD(1));
                }
                else
                {
                    this.Stroke = AnnStroke.Create(AnnSolidColorBrush.Create("Red"), new LeadLengthD(1));
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 縦、又は横を走査して指定色が所定のカウント数分連続していたらエラーとする
        /// </summary>
        /// <param name="strFile"></param>
        /// <returns></returns>
        private bool CheckCorrupt(string strFile)
        {
            int iPointX = (int)this.numPointX.Value;
            int iPointY = (int)this.numPointY.Value;

            using (var tempImage = codecs.Load(strFile))
            {
                int iCorruptCount = 0;                        // 対象色の連続カウント
                int iLimitCount   = (int)this.numPixel.Value; // 連続カウントの限界値
                // ターゲットカラー(System.Drawing.ColorをLeadtools.RasterColorに変換)
                RasterColor targetColor = RasterColorConverter.FromColor(cpTargetColor.Color);
                if (this.cmbDirection.SelectedIndex == 0)
                {
                    // 縦方向に走査
                    int iHeight = tempImage.Height;
                    for (int i = 0; i < iHeight; i++)
                    {
                        //RasterColor sourceColor = tempImage.GetPixel(i, 0);
                        if (RasterColor.Equals(targetColor, tempImage.GetPixel(i, iPointX)) == true)
                        {
                            iCorruptCount += 1;
                        }
                        else
                        {
                            iCorruptCount = 0;
                        }
                        if (iCorruptCount == iLimitCount)
                        {
                            // 限界値に達したらエラーとする
                            return(false);
                        }
                    }
                }
                else
                {
                    // 横方向に走査
                    int iWidth = tempImage.Width;
                    for (int i = 0; i < iWidth; i++)
                    {
                        //RasterColor sourceColor = tempImage.GetPixel(0, i);
                        if (RasterColor.Equals(targetColor, tempImage.GetPixel(iPointY, i)) == true)
                        {
                            iCorruptCount += 1;
                        }
                        else
                        {
                            iCorruptCount = 0;
                        }
                        if (iCorruptCount == iLimitCount)
                        {
                            // 限界値に達したらエラーとする
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }
        private void _btnOk_Click(object sender, System.EventArgs e)
        {
            Angle      = (int)_numAngle.Value * 100;
            Horizontal = _rbHorizontal.Checked;

            _initialAngle      = Angle;
            _initialHorizontal = Horizontal;
            _initialFillColor  = FillColor;
        }
Exemplo n.º 12
0
        private static int CalculateEuclideanDistance(this RasterColor c1, RasterColor c2)
        {
            // https://en.wikipedia.org/wiki/Color_difference
            int dR = c1.R - c2.R,
                dG = c1.G - c2.G,
                dB = c1.B - c2.B;

            return(dR * dR + dG * dG + dB * dB);
        }
Exemplo n.º 13
0
        private void _btnRevColor_Click(object sender, EventArgs e)
        {
            ColorDialog colorDlg = new ColorDialog();

            if (colorDlg.ShowDialog() == DialogResult.OK)
            {
                _pnlRevColor.BackColor = colorDlg.Color;
                FillColor = Converters.FromGdiPlusColor(colorDlg.Color);
            }
        }
Exemplo n.º 14
0
        public static RasterColor FindClosestColor(
            RasterColor color,
            RasterColor[] palette,
            ColorDifferencingMethod colorDifferencingMethod)
        {
            double minDistance = double.MaxValue;
            var    bestIndex   = 0;

            switch (colorDifferencingMethod)
            {
            case ColorDifferencingMethod.EuclideanDistance:
                for (var i = 0; i < palette.Length; i++)
                {
                    double distance = color.CalculateEuclideanDistance(palette[i]);
                    if (!(distance < minDistance))
                    {
                        continue;
                    }
                    minDistance = distance;
                    bestIndex   = i;
                }
                break;

            case ColorDifferencingMethod.RelativeLuminance601:
                for (var i = 0; i < palette.Length; i++)
                {
                    double distance = color.CalculateRelativeLuminance601(palette[i]);
                    if (!(distance < minDistance))
                    {
                        continue;
                    }
                    minDistance = distance;
                    bestIndex   = i;
                }
                break;

            case ColorDifferencingMethod.RelativeLuminance709:
                for (var i = 0; i < palette.Length; i++)
                {
                    double distance = color.CalculateRelativeLuminance709(palette[i]);
                    if (!(distance < minDistance))
                    {
                        continue;
                    }
                    minDistance = distance;
                    bestIndex   = i;
                }
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(colorDifferencingMethod), colorDifferencingMethod, null);
            }

            return(palette[bestIndex]);
        }
Exemplo n.º 15
0
        private void lblColor_Click(object sender, EventArgs e)
        {
            ColorDialog dlg = new ColorDialog();

            dlg.Color = _lblColor.BackColor;
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                _lblColor.BackColor = dlg.Color;
                _Color = Leadtools.Demos.Converters.FromGdiPlusColor(dlg.Color);
            }
        }
Exemplo n.º 16
0
        private void InitializeUI()
        {
            // Fill
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.FillExposedArea) == DeskewExtendedCommandFlags.FillExposedArea)
            {
                _cbFillExposedArea.Checked = true;
                _lblColor.BackColor        = Leadtools.Demos.Converters.ToGdiPlusColor(_DeskewExtendedCommand.FillColor);
                _Color            = Leadtools.Demos.Converters.FromGdiPlusColor(Color.Black);
                _lblColor.Enabled = true;
            }

            // Threshold
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.Threshold) == DeskewExtendedCommandFlags.Threshold)
            {
                _cbThreshold.Checked = true;
            }

            // Quality
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.RotateLinear) == DeskewExtendedCommandFlags.RotateLinear)
            {
                _rbLow.Checked = true;
            }
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.RotateResample) == DeskewExtendedCommandFlags.RotateResample)
            {
                _rbMedium.Checked = true;
            }
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.RotateBicubic) == DeskewExtendedCommandFlags.RotateBicubic)
            {
                _rbHigh.Checked = true;
            }

            // Type
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.DocumentImage) == DeskewExtendedCommandFlags.DocumentImage)
            {
                _rbTextOnly.Checked = true;
            }
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.DocumentAndTextImage) == DeskewExtendedCommandFlags.DocumentAndTextImage)
            {
                _rbTextImages.Checked = true;
            }

            // Speed
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.UseNormalRotate) == DeskewExtendedCommandFlags.UseNormalRotate)
            {
                _rbNormal.Checked = true;
            }
            if ((_DeskewExtendedCommand.Flags & DeskewExtendedCommandFlags.UseHighSpeedRotate) == DeskewExtendedCommandFlags.UseHighSpeedRotate)
            {
                _rbFast.Checked = true;
            }

            _txbAngleRange.Text       = _AngleRange.ToString();
            _numAngleResolution.Value = 20;
        }
Exemplo n.º 17
0
        public DeskewCheckDialog(RasterImage image)
        {
            _image = image;
            InitializeComponent();
            _DeskewCheckCommand = new DeskewCheckCommand();
            _Color          = Leadtools.Demos.Converters.FromGdiPlusColor(Color.Black);
            _rbFast.Enabled = (_image.BitsPerPixel == 1);

            //Set command default values
            InitializeUI();
        }
        public static void SetControlBackground(FormFieldControl fieldControl, RasterColor fillColor, int fillMode)
        {
            if (fillMode == PDFFormField.FillModeFilled)
            {
                fieldControl.BackgroundColor = Color.FromArgb(fillColor.A, fillColor.R, fillColor.G, fillColor.B);
            }
            else
            {
                fieldControl.BackgroundColor = Color.White;
            }

            fieldControl.BackColor = Color.White;
        }
Exemplo n.º 19
0
        private void UpdateCommand()
        {
            _Dimension = Convert.ToInt32(_numDimension.Value);
            _Threshold = Convert.ToInt32(_numThreshold.Value);

            _BackGroundColor = Leadtools.Demos.Converters.FromGdiPlusColor(_lblBackGroundColor.BackColor);
            _EdgeColor       = Leadtools.Demos.Converters.FromGdiPlusColor(_lblEdgeColor.BackColor);

            _EdgeDetectStatisticalCommand.BackGroundColor = _BackGroundColor;
            _EdgeDetectStatisticalCommand.EdgeColor       = _EdgeColor;
            _EdgeDetectStatisticalCommand.Dimension       = _Dimension;
            _EdgeDetectStatisticalCommand.Threshold       = _Threshold;
        }
Exemplo n.º 20
0
        private static RasterImage CreateTextFooter(LeadSize size, string tag)
        {
            var bpp             = 24;
            var byteOrder       = RasterByteOrder.Bgr;
            var viewPerspective = RasterViewPerspective.TopLeft;

            var image = new RasterImage(RasterMemoryFlags.Conventional, size.Width, size.Height, bpp, byteOrder, viewPerspective, null, null, 0);

            var fill = new FillCommand(RasterColor.FromKnownColor(RasterKnownColor.White));

            fill.Run(image);

            using (var graphics = RasterImagePainter.CreateGraphics(image))
            {
                using (var brush = new SolidBrush(Color.Black))
                {
                    using (var font = new Font(FontFamily.GenericSansSerif, size.Width / 128))
                    {
                        var pos = new PointF(0, 0);

                        {
                            SizeF stringSize = new SizeF();
                            stringSize = graphics.Graphics.MeasureString(tag, font);

                            float scaleX = (float)size.Width / stringSize.Width;
                            float scaleY = (float)size.Height / stringSize.Height;

                            scaleX = Math.Min(1f, scaleX);
                            scaleY = Math.Min(1f, scaleY);

                            graphics.Graphics.ScaleTransform(scaleX, scaleY);

                            if (size.Height > (int)stringSize.Height)
                            {
                                size.Height = (int)stringSize.Height;
                            }
                        }

                        graphics.Graphics.DrawString(tag, font, Brushes.Black, new PointF(0, 0));
                    }
                }
            }

            if (size.Height < image.Height)
            {
                var crop = new CropCommand(LeadRect.FromLTRB(0, 0, size.Width, size.Height));
                crop.Run(image);
            }

            return(image);
        }
Exemplo n.º 21
0
        private void _btnOK_Click(object sender, EventArgs e)
        {
            SelectedColor = panel1.BackColor;
            if (_enableChangeColor)
            {
                RasterColor[] colors = new RasterColor[this._gpBitmapColors.Controls.Count];
                for (int i = 0; i < this._gpBitmapColors.Controls.Count; ++i)
                {
                    colors[i] = Leadtools.Demos.Converters.FromGdiPlusColor(this._gpBitmapColors.Controls[i].BackColor);
                }

                _image.SetPalette(colors, 0, this._gpBitmapColors.Controls.Count);
            }
        }
Exemplo n.º 22
0
        void label_DoubleClick(object sender, EventArgs e)
        {
            RasterColor color = new RasterColor();

            if (Tools.ShowColorDialog(this, ref color) == true)
            {
                Panel panel = sender as Panel;
                if (panel != null)
                {
                    panel.BackColor  = Leadtools.Demos.Converters.ToGdiPlusColor(color);
                    panel1.BackColor = Leadtools.Demos.Converters.ToGdiPlusColor(color);
                }
            }
        }
Exemplo n.º 23
0
        private static void DeskewImage(RasterImage image, string arguments)
        {
            int         angleRange      = DemoUtils.JsonStringToInteger(arguments, "angleRange");
            int         angleResolution = DemoUtils.JsonStringToInteger(arguments, "angleResolution");
            RasterColor fillColor       = DemoUtils.JsonStringToRasterColor(arguments, "fillColor");
            int         flags           = DemoUtils.JsonStringToInteger(arguments, "flags");

            DeskewCommand cmd = new DeskewCommand(fillColor, (DeskewCommandFlags)flags);

            cmd.AngleRange      = angleRange;
            cmd.AngleResolution = angleResolution;

            cmd.Run(image);
        }
Exemplo n.º 24
0
        private void _btnColor_Click(object sender, EventArgs e)
        {
            ColorDialog dlg = new ColorDialog();

            dlg.AllowFullOpen = true;
            dlg.AnyColor      = true;
            DialogResult res = dlg.ShowDialog(this);

            if (res == DialogResult.OK)
            {
                _Color = Leadtools.Demos.Converters.FromGdiPlusColor(dlg.Color);
            }
            _lblColor.Refresh();
        }
Exemplo n.º 25
0
        private void InitClass( )
        {
            Messager.Caption = "LEADTOOLS for .NET C# Animation Demo";
            Text             = Messager.Caption;

            _codecs = new RasterCodecs();
            _codecs.Options.Txt.Load.Enabled = false;
            _fillColor       = Leadtools.Demos.Converters.FromGdiPlusColor(Color.White);
            _paintProperties = RasterPaintProperties.Default;
            _paintProperties.PaintDisplayMode |= RasterPaintDisplayModeFlags.ScaleToGray;
            _animateRegions = false;

            UpdateControls();
        }
Exemplo n.º 26
0
        private void InitializeUI()
        {
            _Dimension = 1;
            _Threshold = 128;

            _BackGroundColor = Leadtools.Demos.Converters.FromGdiPlusColor(Color.Black);
            _EdgeColor       = Leadtools.Demos.Converters.FromGdiPlusColor(Color.White);

            _numDimension.Value = _Dimension;
            _numThreshold.Value = _Threshold;

            _lblBackGroundColor.BackColor = Color.Black;
            _lblEdgeColor.BackColor       = Color.White;
        }
Exemplo n.º 27
0
        public static RasterImage NoDithering(RasterImage image, RasterColor[] ditheringPalette,
                                              ColorDifferencingMethod colorMatching)
        {
            int width = image.Width, height = image.Height;
            int rOffset, bOffset, gOffset;

            if (image.Order == RasterByteOrder.Bgr)
            {
                rOffset = 2;
                gOffset = 1;
                bOffset = 0;
            }
            else
            {
                rOffset = 0;
                gOffset = 1;
                bOffset = 2;
            }

            byte[] buffer = AllocateImageBytes(image);

            // Translates the x,y coordinates to a buffer index
            int CalculateIndex(int x, int y)
            {
                return(y * width * (image.BitsPerPixel == 24 ? 3 : 4)
                       + x * (image.BitsPerPixel == 24 ? 3 : 4));
            }

            for (var y = 0; y < height; y++)
            {
                for (var x = 0; x < width; x++)
                {
                    int index = CalculateIndex(x, y);

                    byte b = buffer[index + bOffset];
                    byte r = buffer[index + rOffset];
                    byte g = buffer[index + gOffset];

                    RasterColor bestColor = FindClosestColor(new RasterColor(r, g, b), ditheringPalette, colorMatching);

                    buffer[index + bOffset] = bestColor.B;
                    buffer[index + rOffset] = bestColor.R;
                    buffer[index + gOffset] = bestColor.G;
                }
            }
            SetImageBytes(image, buffer);

            return(image);
        }
Exemplo n.º 28
0
        private void _btnFillColor_Click(object sender, System.EventArgs e)
        {
            ColorDialog ColorDlg = new ColorDialog();

            ColorDlg.AllowFullOpen = true;
            ColorDlg.AnyColor      = true;
            DialogResult res = ColorDlg.ShowDialog(this);

            if (res == DialogResult.OK)
            {
                FillColor = Leadtools.Demos.Converters.FromGdiPlusColor(ColorDlg.Color);
            }

            _pnlFillColor.Refresh();
        }
Exemplo n.º 29
0
        public static RasterColor JsonStringToRasterColor(string jsonString, string key)
        {
            JavaScriptSerializer        json = new JavaScriptSerializer();
            Dictionary <string, string> data = json.Deserialize <Dictionary <string, string> >(jsonString);
            Dictionary <string, byte>   clr  = json.Deserialize <Dictionary <string, byte> >(data[key]);

            RasterColor color = new RasterColor();

            color.A = clr["A"];
            color.R = clr["R"];
            color.G = clr["G"];
            color.B = clr["B"];

            return(color);
        }
Exemplo n.º 30
0
        private void InitializeUI()
        {
            _Color = Leadtools.Demos.Converters.FromGdiPlusColor(Color.Black);

            string[] names;
            names = Enum.GetNames(typeof(GrayScaleToDuotoneCommandMixingType));
            foreach (string name in names)
            {
                if (name != "None")
                {
                    _cmbType.Items.Add(name);
                }
            }
            _cmbType.SelectedIndex = 0;
        }
Exemplo n.º 31
0
        void ShowWindowLeveling(MedicalViewer _mecViewer)
        {
            try
            {
                if (!_DicomMedicalViewer.IsValidCell()) return;
                RasterImage Img = _CurrCell.Image;
                RasterWindowLevelDialog windowLevelDlg = new RasterWindowLevelDialog();

                int lookupSize;
                MinMaxBitsCommand minMaxBits = new MinMaxBitsCommand();
                MinMaxValuesCommand minMaxValues = new MinMaxValuesCommand();
                RasterColor[] lookupTable;

                minMaxBits.Run(Img);
                minMaxValues.Run(Img);

                lookupSize = (1 << (minMaxBits.MaximumBit - minMaxBits.MinimumBit + 1));
                lookupTable = new RasterColor[lookupSize];


                windowLevelDlg.Image = Img;
                windowLevelDlg.ShowPreview = true;
                windowLevelDlg.ShowRange = true;
                windowLevelDlg.ShowZoomLevel = true;
                windowLevelDlg.ZoomToFit = true;
                windowLevelDlg.LowBit = minMaxBits.MinimumBit;
                windowLevelDlg.HighBit = minMaxBits.MaximumBit;// > 4998 ? 4998 : minMaxBits.MaximumBit;
                windowLevelDlg.High = minMaxValues.MaximumValue;//> 4998 ? 4998 : minMaxValues.MaximumValue;
                windowLevelDlg.Low = minMaxValues.MinimumValue;
                windowLevelDlg.High = minMaxValues.MaximumValue;
                windowLevelDlg.WindowLevelFlags = RasterPaletteWindowLevelFlags.Inside | RasterPaletteWindowLevelFlags.Linear | RasterPaletteWindowLevelFlags.DicomStyle;
                windowLevelDlg.LookupTable = lookupTable;
                windowLevelDlg.Signed = Img.Signed;

                switch (Img.GrayscaleMode)
                {
                    case RasterGrayscaleMode.OrderedNormal:
                        {
                            windowLevelDlg.StartColor = new RasterColor(0, 0, 0);
                            windowLevelDlg.EndColor = new RasterColor(255, 255, 255);

                            break;
                        }

                    case RasterGrayscaleMode.OrderedInverse:
                        {
                            windowLevelDlg.StartColor = new RasterColor(255, 255, 255);
                            windowLevelDlg.EndColor = new RasterColor(0, 0, 0);

                            break;
                        }

                    case RasterGrayscaleMode.NotOrdered:
                        {
                            windowLevelDlg.StartColor = new RasterColor(0, 0, 0);
                            windowLevelDlg.EndColor = new RasterColor(255, 255, 255);

                            break;
                        }

                    default:
                        {
                            MessageBox.Show(Owner,
                                              "Window Level is not supported for this bitmap order",
                                              "Window Level Error",
                                              MessageBoxButtons.OK);

                            //_menuItemColorWindowLevel.Enabled = false;

                            return;
                        }
                }


                if (windowLevelDlg.ShowDialog(Owner) == DialogResult.OK)
                {

                    RasterPalette.WindowLevelFillLookupTable(lookupTable,
                                                              windowLevelDlg.StartColor,
                                                              windowLevelDlg.EndColor,
                                                              windowLevelDlg.Low,
                                                              windowLevelDlg.High,
                                                              windowLevelDlg.LowBit,
                                                              windowLevelDlg.HighBit,
                                                              minMaxValues.MinimumValue,
                                                              minMaxValues.MaximumValue,
                                                              windowLevelDlg.Factor,
                                                              windowLevelDlg.WindowLevelFlags |
                                                              (windowLevelDlg.Signed ? RasterPaletteWindowLevelFlags.Signed : RasterPaletteWindowLevelFlags.None));

                    Img.WindowLevel(windowLevelDlg.LowBit,
                                                        windowLevelDlg.HighBit,
                                                        lookupTable,
                                                        RasterWindowLevelMode.PaintAndProcessing);

                   _CurrCell.Image = Img.CloneAll();
                    _DicomMedicalViewer.try2FreeImage(ref Img);
                }
            }
            catch (Exception ex)
            {
                //Messager.ShowError(this, ex);
            }
            finally
            {
                // UpdateControls();
            }
        }
Exemplo n.º 32
0
        private void cmdSaveWindowLeveling_Click(object sender, EventArgs e)
        {
            try
            {
                if (Utility.AcceptQuestion("Bạn có muốn lưu các giá trị WindowLeveling vừa chọn cho tấm chụp " + cboDevice.Text + " không?", "Xác nhận lưu WindowLeveling", true))
                {
                    LOW = TEMPLOW;
                    HIGH = TEMPHIGH;
                    Range = TEMPRange;
                    StartColor = TEMPStartColor;
                    EndColor = TEMPEndColor;
                    //Save to database
                    string ErrMsg = "";

                    if (new ModalityController().UpdateWindowLeveling(m_intCurrDevice1.ToString(), LOW.ToString(), HIGH.ToString(), StartColor.ToArgb().ToString(), EndColor.ToArgb().ToString(), Range, ref ErrMsg) == ActionResult.Success)
                        Utility.ShowMsg("Đã lưu cấu hình WindowLeveling thành công!");
                    else
                        if (ErrMsg != "")
                            Utility.ShowMsg("Lưu cấu hình WindowLeveling không thành công.\n" + ErrMsg);
                        else
                            Utility.ShowMsg("Lưu cấu hình WindowLeveling không thành công!");

                }
            }
            catch
            {
            }
        }
Exemplo n.º 33
0
        void LoadDeviceInfor2()
        {
            try
            {
                DataTable dtDevice = new ModalityController().GetData("MODALITY_ID=" + m_intCurrDevice2.ToString()).Tables[0];
                if (dtDevice != null)
                {
                    IMGH2 = Utility.Int32Dbnull(dtDevice.Rows[0]["IMGH"], 3072);
                    PORT_NUM2 = Utility.Int32Dbnull(dtDevice.Rows[0]["PORT_NUM"], 104);
                    XRAY_RECEIVER_PORT2 = PORT_NUM2;
                    IPPrefix2 = Utility.sDbnull(dtDevice.Rows[0]["IP_ADDRESS"], "192.168.250.");
                    IMGW2 = Utility.Int32Dbnull(dtDevice.Rows[0]["IMGW"], 3072);

                    _defaultIMGH2 = Utility.Int32Dbnull(dtDevice.Rows[0]["IMGH"], 3072);
                    _defaultIMGW2 = Utility.Int32Dbnull(dtDevice.Rows[0]["IMGW"], 3072);

                    LOW2 = Utility.Int32Dbnull(dtDevice.Rows[0]["LOW"], 10158);
                    HIGH2 = Utility.Int32Dbnull(dtDevice.Rows[0]["HIGH"], 65535);
                    Range2 = Utility.sDbnull(dtDevice.Rows[0]["Range"]);
                    StartColor2 = RasterColor.FromArgb(Utility.Int32Dbnull(dtDevice.Rows[0]["StartColor"], Color.White.ToArgb()));
                    EndColor2 = RasterColor.FromArgb(Utility.Int32Dbnull(dtDevice.Rows[0]["EndColor"], Color.Black.ToArgb()));

                }
            }
            catch
            {
                StartColor2 = RasterColor.FromArgb(Color.White.ToArgb());
                EndColor2 = RasterColor.FromArgb(Color.Black.ToArgb());
            }
            finally
            {
                IMAGE_HEIGHT2 = IMGH2;
                IMAGE_WIDTH2 = IMGW2;
            }
        }