VgVisualElement CreateTestRenderVx_FromImg2(string filename) { var spec = new SvgImageSpec() { ImageSrc = filename, Width = new Css.CssLength(50, Css.CssUnitOrNames.Pixels), Height = new Css.CssLength(50, Css.CssUnitOrNames.Pixels), }; VgVisualDoc renderRoot = new VgVisualDoc(_vgVisualDocHost); VgVisualElement vgimg = new VgVisualElement(WellknownSvgElementName.Image, spec, renderRoot); vgimg.ImageBinder = _appHost.LoadImageAndBind(filename); return(vgimg); }
protected override void OnStart(AppHost host) { _appHost = host;//** string svgfile = "../Test8_HtmlRenderer.Demo/Samples/Svg/others/volcano3.svg"; _vgVisualDoc = VgVisualDocHelper.CreateVgVisualDocFromFile(svgfile); // VgVisualElement vgVisualElem = _vgVisualDoc.VgRootElem; { UISprite wholeImgSprite = CreateUISpriteFromVgVisualElem(vgVisualElem); } // if (_vgVisualDoc.TryGetVgVisualElementById("path62_larva3", out VgVisualElement vgPart)) { UISprite larvaSprite = CreateUISpriteFromVgVisualElem(vgPart, true); larvaSprite.SetTransformation(Affine.NewScaling(4));//scale larvaSprite.SetLocation(100, 100); } }
VgVisualElement CreateEllipseVxs(PixelFarm.CpuBlit.RectD newBounds) { using (VxsTemp.Borrow(out var v1)) using (VectorToolBox.Borrow(out Ellipse ellipse)) { ellipse.Set((newBounds.Left + newBounds.Right) * 0.5, (newBounds.Bottom + newBounds.Top) * 0.5, (newBounds.Right - newBounds.Left) * 0.5, (newBounds.Top - newBounds.Bottom) * 0.5); var spec = new SvgPathSpec() { FillColor = Color.Red }; VgVisualDoc renderRoot = new VgVisualDoc(); VgVisualElement renderE = new VgVisualElement(WellknownSvgElementName.Path, spec, renderRoot); renderE.VxsPath = ellipse.MakeVxs(v1).CreateTrim(); return(renderE); } }
public static VgVisualElement CreateVgVisualElementFromGlyph(string actualFontFile, float sizeInPts, char c) { if (!s_loadedTypefaces.TryGetValue(actualFontFile, out Typography.OpenFont.Typeface typeface)) { //create vgrender vx from font-glyph // using (System.IO.FileStream fs = new FileStream(actualFontFile, FileMode.Open)) { Typography.OpenFont.OpenFontReader reader = new Typography.OpenFont.OpenFontReader(); typeface = reader.Read(fs); } } if (_glyphMaskStore == null) { _glyphMaskStore = new Typography.Contours.GlyphMeshStore(); _glyphMaskStore.FlipGlyphUpward = true; } _glyphMaskStore.SetFont(typeface, sizeInPts); //----------------- VertexStore vxs = _glyphMaskStore.GetGlyphMesh(typeface.GetGlyphIndex(c)); var spec = new SvgPathSpec() { FillColor = Color.Red }; VgVisualDoc renderRoot = new VgVisualDoc(); VgVisualElement renderE = new VgVisualElement(WellknownSvgElementName.Path, spec, renderRoot); //offset the original vxs to (0,0) bounds //PixelFarm.CpuBlit.RectD bounds = vxs.GetBoundingRect(); //Affine translate = Affine.NewTranslation(-bounds.Left, -bounds.Bottom); //renderE._vxsPath = vxs.CreateTrim(translate); PixelFarm.CpuBlit.RectD bounds = vxs.GetBoundingRect(); Affine translate = Affine.NewTranslation(-bounds.Left, -bounds.Bottom); renderE.VxsPath = vxs.CreateTrim(translate); return(renderE); }
VgVisualElement CreateTestRenderVx_BasicShape() { var spec = new SvgPathSpec() { FillColor = Color.Red }; VgVisualDoc renderRoot = new VgVisualDoc(); VgVisualElement renderE = new VgVisualElement(WellknownSvgElementName.Path, spec, renderRoot); using (Tools.BorrowVxs(out var v1)) { //red-triangle *** v1.AddMoveTo(10, 10); v1.AddLineTo(60, 10); v1.AddLineTo(60, 30); v1.AddLineTo(10, 30); v1.AddCloseFigure(); renderE.VxsPath = v1.CreateTrim(); } return(renderE); }
protected override void OnStart(AppHost host) { _vgVisualDocHost = new VgVisualDocHost(); _vgVisualDocHost.SetInvalidateDelegate(vgElem => { //invalidate graphic here }); _backBoard = new BackDrawBoardUI(800, 600); _backBoard.BackColor = Color.White; host.AddChild(_backBoard); //load lion svg string svgfile = "../Test8_HtmlRenderer.Demo/Samples/Svg/others/tiger.svg"; //string svgfile = "1f30b.svg"; //string svgfile = "../Data/Svg/twemoji/1f30b.svg"; //string svgfile = "../Data/1f30b.svg"; //string svgfile = "../Data/Svg/twemoji/1f370.svg"; VgVisualDoc vgDocRoot = ReadSvgFile(svgfile); VgVisualElement vgVisElem = vgDocRoot.VgRootElem; var uiSprite = new UISprite(10, 10); uiSprite.LoadVg(vgVisElem); _backBoard.AddChild(uiSprite); // _redBox = new LayoutFarm.CustomWidgets.Box(50, 50); //visual rect box _redBox.BackColor = Color.Red; _redBox.SetLocation(10, 10); //box1.dbugTag = 1; SetupActiveBoxProperties(_redBox); _backBoard.AddChild(_redBox); //---------------------- //-------- _rectBoxController = new CustomWidgets.RectBoxController(); _rectBoxController.Init(); _backBoard.AddChild(_rectBoxController); //foreach (var ui in rectBoxController.GetControllerIter()) //{ // viewport.AddContent(ui); //} //-------- var svgEvListener = new GeneralEventListener(); //uiSprite.AttachExternalEventListener(svgEvListener); svgEvListener.MouseDown += (e) => { //e.MouseCursorStyle = MouseCursorStyle.Pointer; ////-------------------------------------------- //e.SetMouseCapture(rectBoxController.ControllerBoxMain); _rectBoxController.UpdateControllerBoxes(_redBox); _rectBoxController.Focus(); //System.Console.WriteLine("click :" + (count++)); }; _rectBoxController.ControllerBoxMain.KeyDown += (s1, e1) => { if (e1.KeyCode == UIKeys.C && e1.Ctrl) { //test copy back image buffer from current rect area #if DEBUG //int left = rectBoxController.ControllerBoxMain.Left; //int top = rectBoxController.ControllerBoxMain.Top; //int width = rectBoxController.ControllerBoxMain.Width; //int height = rectBoxController.ControllerBoxMain.Height; //using (DrawBoard drawBoard = DrawBoardCreator.CreateNewDrawBoard(1, width, height)) //{ // //create new draw board // drawBoard.OffsetCanvasOrigin(left, top); // _backBoard.CurrentPrimaryRenderElement.CustomDrawToThisCanvas(drawBoard, new Rectangle(0, 0, width, height)); // using (var img2 = new PixelFarm.CpuBlit.ActualBitmap(width, height)) // { // //copy content from drawboard to target image and save // drawBoard.RenderTo(img2, 0, 0, width, height); // PixelFarm.CpuBlit.Imaging.PngImageWriter.SaveImgBufferToPngFile( // PixelFarm.CpuBlit.ActualBitmap.GetBufferPtr(img2), // img2.Stride, // img2.Width, // img2.Height, // "d:\\WImageTest\\tiger.png"); // } // //copy content from drawboard to target image and save //} #endif } }; }