コード例 #1
0
        private ShapeRange traceBitmap(Shape s, Point p)
        {
            var sr = new ShapeRange();

            sr.RemoveAll();

            try
            {
                Shape dub = s.Duplicate(p.X, p.Y);
                dub.Bitmap.Resample(0, 0, true, 72, 72);
                dub.ApplyEffectBCI(-100, 100, -100);

                ShapeRange tr = dub.Bitmap.Trace(
                    cdrTraceType.cdrTraceLineArt, -1, 1,
                    cdrColorType.cdrColorCMYK,
                    cdrPaletteID.cdrCustom, 1, true, false, true
                    ).Finish();

                Shape path = tr.UngroupAllEx().Combine();
                path.Curve.Nodes.All().AutoReduce(0.01);
                sr.Add(path);

                if ((bool)cbBitmapToPowerClip.IsChecked)
                {
                    Shape clip = path.Duplicate(p.X * -1, p.Y * -1);
                    clip.OrderBackOf(s);
                    clip.Fill.ApplyNoFill();
                    clip.Outline.SetNoOutline();
                    s.AddToPowerClip(clip);
                    sr.Add(clip);
                }

                return(sr);
            }
            catch (Exception err)
            {
                MessageBox.Show(err.ToString(), MName, MessageBoxButton.OK, MessageBoxImage.Error);
                return(sr);
            }
        }