public void ActiveDrawLine(Point cp) { if (Target == null) { return; } if (Target.SelectLayer == null) { return; } if (p == null) { return; } PhotoLayer pl = Target.SelectLayer; Canvas drawCanvas = pl.getTempObjectCanvas(); l.X2 = cp.X; l.Y2 = cp.Y; if (drawCanvas.Children.Contains(l)) { } else { drawCanvas.Children.Add(l); } }
public void ReadImageFromFile()//加载照片 { var bl = SilverlightLFC.common.Environment.getEnvironment().OpenImage(); if (bl == null || bl.Result == null || bl.Result.Count == 0) { return; } var v = bl.Result.FirstOrDefault(); if (v == null) { return; } //PhotoLayers.Children.Clear(); if (SelectLayer == null) { PhotoLayer pl = new PhotoLayer(); PhotoLayers.Children.Add(pl); SelectLayer = pl; //return; } SelectLayer.setPhoto(WriteableBitmapHelper.Clone(v), ScalePercent); setClip(); //SelectLayer.setScale(ScalePercent); }
public LayerIcon(PhotoLayer p) { InitializeComponent(); //acm = new ActionMove(this, this); pl = p; ReadInfor(); }
public void ProcessContract(int n) { DCTestLibrary.PhotoTest pt = new DCTestLibrary.PhotoTest(); PhotoLayer pl = p.SelectLayer; WriteableBitmap b = pl.ProcPhoto; pl.ProcPhoto = pt.SetContrast(b, n); }
public void ProcessInvert() { DCTestLibrary.PhotoTest pt = new DCTestLibrary.PhotoTest(); PhotoLayer pl = p.SelectLayer; WriteableBitmap b = pl.ProcPhoto; pl.ProcPhoto = pt.Invert(b); }
public void ProcessMosaic(int n) { DCTestLibrary.PhotoTest pt = new DCTestLibrary.PhotoTest(); PhotoLayer pl = p.SelectLayer; WriteableBitmap b = pl.ProcPhoto; pl.ProcPhoto = pt.Mosaic(b, n); }
public void setLayersZIndex() { for (int i = 0; i < stackLayer.Children.Count; i++) { LayerIcon li = stackLayer.Children[i] as LayerIcon; PhotoLayer pl = li.getLayer(); Canvas.SetZIndex(pl, stackLayer.Children.Count - stackLayer.Children.IndexOf(li)); } }
public void InitLayers()//如果一个图层都没有,就建立一个默认的图层 { if (PhotoLayers.Children.Count == 0) { PhotoLayer pl = new PhotoLayer(); PhotoLayers.Children.Add(pl); _SelectedLayer = pl; } }
public PhotoLayer getCopyClip()//找到截图 { PhotoLayer t = getCopy(); //PathGeometry g=SelectPath.Data as PathGeometry ; //t.SelectPath = SelectPath; //t.Layer.Clip = SelectPath; return(t); }
public void AddLayer(PhotoLayer o)//层永远加在最上面 { setLayersZIndex(); Canvas.SetZIndex(o, pc.getLayers().Children.Count); SelectLayerIcon = new LayerIcon(o); SelectLayerIcon.selectLayer += new LayerEventHandler(SelectLayerIcon_selectLayer); o.Selected(); //li.Init(o); SelectLayerIcon.PointerPressed += new PointerEventHandler(LayerIcon_PointerPressed); SelectLayerIcon.PointerReleased += new PointerEventHandler(LayerIcon_PointerReleased); stackLayer.Children.Add(SelectLayerIcon); pc.PhotoLayers.Children.Add(SelectLayerIcon.getLayer()); }
public void ActiveDrawArea(Point cp) { if (Target == null) { return; } if (Target.SelectLayer == null) { return; } if (p == null) { return; } PhotoLayer pl = Target.SelectLayer; Canvas drawCanvas = pl.getTempObjectCanvas(); double bl = 0, bt = 0, w = 0, h = 0; if (cp.X > sp.X) { bl = sp.X; w = cp.X - sp.X; } else { bl = cp.X; w = sp.X - cp.X; } if (cp.Y > sp.Y) { bt = sp.Y; h = cp.Y - sp.Y; } else { bt = cp.Y; h = sp.Y - cp.Y; } r.Width = w; r.Height = h; Canvas.SetLeft(r, bl); Canvas.SetTop(r, bt); if (drawCanvas.Children.Contains(r)) { } else { drawCanvas.Children.Add(r); } }
public void ReadLayers() { Canvas ls = pc.getLayers(); stackLayer.Children.Clear(); for (int i = 0; i < ls.Children.Count; i++) { PhotoLayer pl = ls.Children[i] as PhotoLayer; stackLayer.Children.Add(pl.li); pl.li.ReadInfor(); LayerIcon li = stackLayer.Children[i] as LayerIcon; li.selectLayer += new LayerEventHandler(SelectLayerIcon_selectLayer); li.ReadInfor(); } }
public PhotoLayer getClip() { PhotoLayer pl = new PhotoLayer(); if (Layer.Children.Contains(sImg)) { Rect r = sImg.Clip.Rect; WriteableBitmap cb = DrawGraphic.getImageArea(r, sImg); pl.setPhoto(cb, ScalePercent, sImg.Clip); } else { pl.setPhoto(Photo.Source as WriteableBitmap, ScalePercent); } return(pl); }
public void DeActiveDrawArea() { if (Target == null) { return; } if (Target.SelectLayer == null) { return; } if (p == null) { return; } PhotoLayer pl = Target.SelectLayer; Canvas drawCanvas = pl.getTempObjectCanvas(); if (drawCanvas.Children.Contains(r)) { drawCanvas.Children.Remove(r); } r = null; }
public void ActiveDrawPath(Point cp) { if (Target == null) { return; } if (Target.SelectLayer == null) { return; } if (p == null) { return; } PhotoLayer pl = Target.SelectLayer; Canvas drawCanvas = pl.getTempObjectCanvas(); PathGeometry pg = p.Data as PathGeometry; PathFigure pf = pg.Figures[0]; if (pf == null) { return; } LineSegment ls = new LineSegment(); ls.Point = cp; pf.Segments.Add(ls); if (drawCanvas.Children.Contains(p)) { } else { drawCanvas.Children.Add(p); } }
private void buttonNewLayer_Click(object sender, RoutedEventArgs e) { PhotoLayer pl = new PhotoLayer(); AddLayer(pl); }
//public void select(GeometryGroup gg)//依据一组gg添加一个选区 //{//在该图层上面复制一个图像,然后设置一个clip // Image si = new Image(); // si.Height = Photo.Height; // si.Width = Photo.Width; // gg.FillRule = FillRule.EvenOdd; // PathFigure pf=null; // WriteableBitmap wb = new WriteableBitmap(Photo.Source); //} public PhotoLayer getCopy() { PhotoLayer t = new PhotoLayer(); t.setPhoto(Photo.Source as WriteableBitmap, ScalePercent); foreach (UIElement ui in canvasTempObject.Children) { Type ut = ui.GetType(); if (ut.Name == "Rectangle") { Rectangle tr = new Rectangle(); t.Layer.Children.Add(tr); tr.Fill = ((Rectangle)ui).Fill; tr.Stroke = ((Rectangle)ui).Stroke; tr.Width = ((Rectangle)ui).Width; tr.Height = ((Rectangle)ui).Height; Canvas.SetLeft(tr, Canvas.GetLeft(ui)); Canvas.SetTop(tr, Canvas.GetTop(ui)); } if (ut.Name == "Ellipse") { Ellipse tr = new Ellipse(); t.Layer.Children.Add(tr); tr.Fill = ((Ellipse)ui).Fill; tr.Stroke = ((Ellipse)ui).Stroke; tr.Width = ((Ellipse)ui).Width; tr.Height = ((Ellipse)ui).Height; Canvas.SetLeft(tr, Canvas.GetLeft(ui)); Canvas.SetTop(tr, Canvas.GetTop(ui)); } if (ut.Name == "Path") { Path tr = new Path(); PathGeometry tp = new PathGeometry(); PathGeometry sp = ((Path)ui).Data as PathGeometry; foreach (PathFigure pf in sp.Figures) { PathFigure tpf = new PathFigure(); tp.Figures.Add(tpf); tpf.StartPoint = new Point(pf.StartPoint.X, pf.StartPoint.Y); tpf.IsClosed = pf.IsClosed; tpf.IsFilled = pf.IsFilled; foreach (PathSegment ps in pf.Segments) { Type pathtype = ps.GetType(); if (pathtype.Name == "LineSegment") { LineSegment ls = new LineSegment(); ls.Point = new Point(((LineSegment)ps).Point.X, ((LineSegment)ps).Point.Y); tpf.Segments.Add(ls); } if (pathtype.Name == "ArcSegment") { ArcSegment ls = new ArcSegment(); ls.Point = new Point(((LineSegment)ps).Point.X, ((LineSegment)ps).Point.Y); ls.RotationAngle = ((ArcSegment)ps).RotationAngle; ls.Size = new Size(((ArcSegment)ps).Size.Width, ((ArcSegment)ps).Size.Height); ls.SweepDirection = ((ArcSegment)ps).SweepDirection; tpf.Segments.Add(ls); } } } tr.Data = tp; t.Layer.Children.Add(tr); tr.Fill = ((Path)ui).Fill; tr.Stroke = ((Path)ui).Stroke; tr.Width = ((Path)ui).Width; tr.Height = ((Path)ui).Height; Canvas.SetLeft(tr, Canvas.GetLeft(ui)); Canvas.SetTop(tr, Canvas.GetTop(ui)); } } return(t); }
public void FlatLayer(PhotoLayer sl, PhotoLayer tl) //拼合图层,包括影像图层拼合,对象影像图层混合拼合和对象图层拼合四种方式 { //只要有影像图层参加,最终的结果就是影像的 }
private void buttonES_Click(object sender, RoutedEventArgs e) { PhotoLayer c = pc.SelectLayer; c.EndSelect(); }