Пример #1
0
 /// <summary>
 /// перекрасить массив шейпов
 /// </summary>
 /// <param name="checkColor">метод проверки</param>
 /// <param name="convertColor">метод конвертации</param>
 /// <param name="shapeRange">массив шейпов</param>
 /// <param name="fill">применить к заливке</param>
 /// <param name="outline">применить к обводке</param>
 /// <param name="textAsStory">текст посимвольно</param>
 public RemapShapeRange(ICheckColor checkColor, IConvertColor convertColor, corel.ShapeRange shapeRange, bool fill, bool outline, bool textAsStory)
 {
     this.checkColor   = checkColor;
     this.convertColor = convertColor;
     this.shapeRange   = shapeRange;
     this.applyFill    = fill;
     this.applyOutline = outline;
     this.textAsStory  = textAsStory;
 }
Пример #2
0
        private void Apply(corel.ShapeRange sr, ICheckColor check, IConvertColor convert)
        {
            bool fill    = chbApplyFill.IsChecked ?? false;
            bool outline = chbApplyOutline.IsChecked ?? false;
            bool textAs  = rbTextAsStory.IsChecked ?? false;

            if (sr != null)
            {
                if (sr.Count > 0)
                {
                    RemapShapeRange remapShapeRange = new RemapShapeRange(check, convert, sr, fill, outline, textAs);
                    remapShapeRange.Start();
                }
            }
        }
Пример #3
0
        //Stopwatch stopwatch = new Stopwatch();

        private void Start()
        {
            if (corelApp.Documents.Count == 0)
            {
                return;
            }

            //stopwatch.Reset();
            //stopwatch.Start();

            ICheckColor   check   = (ICheckColor) new CheckNoneColor();
            IConvertColor convert = (IConvertColor) new ConvertKeepColor();

            switch (cbRemap.SelectedIndex)
            {
            case 0:
                switch (cbRemapColorType.SelectedIndex)
                {
                case 0:
                    //remap color
                    check = (ICheckColor) new CheckUserColor(colorRemapUserColor, chbRemapUserColorTint.IsChecked ?? false);                                    // использование тинта пантона
                    break;

                case 1:
                    //remap impure black
                    check = (ICheckColor) new CheckImpureBlack(tbRemapImpureBlackColorLimit.Value);
                    break;

                case 2:
                    //remap impure gray
                    check = (ICheckColor) new CheckImpureGray(tbRemapImpureGrayColorLimit.Value);
                    break;

                default:
                    break;
                }
                break;

            case 1:
                switch (cbRemapColorSpaceType.SelectedIndex)
                {
                case 0:
                    //remap color space cmyk
                    check = (ICheckColor) new CheckColorSpaceCMYK();
                    break;

                case 1:
                    //remap color space rgb
                    check = (ICheckColor) new CheckColorSpaceRGB();
                    break;

                case 2:
                    //remap color space gray
                    check = (ICheckColor) new CheckColorSpaceGray();
                    break;

                case 3:
                    //remap color space pantone
                    check = (ICheckColor) new CheckColorSpacePantone(rbPaletteIsFixed.IsChecked ?? false);
                    break;

                default:
                    break;
                }
                break;

            case 2:
                switch (cbRemapColorRangeType.SelectedIndex)
                {
                case 0:
                    //remap cmyk range
                    check = (ICheckColor) new CheckColorRangeCMYK(tbRemapColorRangeCyanMin.Value,
                                                                  tbRemapColorRangeCyanMax.Value,
                                                                  tbRemapColorRangeMagentaMin.Value,
                                                                  tbRemapColorRangeMagentaMax.Value,
                                                                  tbRemapColorRangeYellowMin.Value,
                                                                  tbRemapColorRangeYellowMax.Value,
                                                                  tbRemapColorRangeBlackMin.Value,
                                                                  tbRemapColorRangeBlackMax.Value);
                    break;

                case 1:
                    //remap rgb range
                    check = (ICheckColor) new CheckColorRangeRGB(tbRemapColorRangeRedMin.Value,
                                                                 tbRemapColorRangeRedMax.Value,
                                                                 tbRemapColorRangeGreenMin.Value,
                                                                 tbRemapColorRangeGreenMax.Value,
                                                                 tbRemapColorRangeBlueMin.Value,
                                                                 tbRemapColorRangeBlueMax.Value);
                    break;

                case 2:
                    //remap gray range
                    check = (ICheckColor) new CheckColorRangeGray(tbRemapColorRangeGrayMin.Value, tbRemapColorRangeGrayMax.Value);
                    break;

                default:
                    break;
                }
                break;

            case 3:
                //remap any color
                check = (ICheckColor) new CheckAnyColor();
                break;

            default:
                break;
            }

            switch (cbTo.SelectedIndex)
            {
            case 0:
                //to color
                convert = (IConvertColor) new ConvertUserColor(colorToUserColor, chbToUserColorTint.IsChecked ?? false);                        // использование тинта пантона
                break;

            case 1:
                switch (cbToColorSpaceType.SelectedIndex)
                {
                case 0:
                    //to color space cmyk
                    convert = (IConvertColor) new ConvertColorSpaceCMYK();
                    break;

                case 1:
                    //to color space cmyk + pantone
                    convert = (IConvertColor) new ConvertColorSpaceCMYKPantone();
                    break;

                case 2:
                    //to color space rgb
                    convert = (IConvertColor) new ConvertColorSpaceRGB();
                    break;

                case 3:
                    //to color space gray
                    convert = (IConvertColor) new ConvertColorSpaceGray();
                    break;

                case 4:
                    //to color space pantone
                    List <string> palettesID = new List <string>();
                    foreach (PaletteListItem item in lbPantonePalette.SelectedItems)
                    {
                        palettesID.Add(item.Id);
                    }
                    convert = (IConvertColor) new ConvertColorSpacePantone(corelApp, palettesID);
                    break;

                default:
                    break;
                }
                break;

            case 2:
                //to color tint
                convert = (IConvertColor) new ConvertColorTint(fountainColorTint, (rbToColorTint.IsChecked ?? false));
                break;

            case 3:
                convert = (IConvertColor) new ConvertColorClear();
                break;

            default:
                break;
            }

            switch (cbApplyRange.SelectedIndex)
            {
            case 0:
                //select
                boost.BoostStart();
                Apply(corelApp.ActiveSelectionRange, check, convert);
                boost.BoostFinish();
                break;

            case 1:
                //layer
                boost.BoostStart();
                Apply(corelApp.ActiveLayer.Shapes.All(), check, convert);
                boost.BoostFinish();
                break;

            case 2:
                //page
                boost.BoostStart();
                Apply(corelApp.ActivePage.SelectableShapes.All(), check, convert);
                boost.BoostFinish();
                break;

            case 3:
                //document
                boost.BoostStart();
                foreach (corel.Page p in corelApp.ActiveDocument.Pages)
                {
                    p.Activate();
                    Apply(p.SelectableShapes.All(), check, convert);
                }
                boost.BoostFinish();
                break;

            case 4:
                //all
                foreach (corel.Document doc in corelApp.Documents)
                {
                    doc.Activate();
                    boost.BoostStart();
                    foreach (corel.Page p in doc.Pages)
                    {
                        p.Activate();
                        Apply(p.SelectableShapes.All(), check, convert);
                    }
                    boost.BoostFinish();
                }
                break;

            default:
                break;
            }

            //stopwatch.Stop();
            //MessageBox.Show(stopwatch.ElapsedMilliseconds.ToString());
        }