Created
September 23, 2022 10:14
-
-
Save aspose-com-gists/adc78141f124556a3e9c96462bf523f0 to your computer and use it in GitHub Desktop.
Create Drop Shadow Effect on SVG Programmatically in C#
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Initialize an object of SVGDocument class | |
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument(); | |
// Set SVG Namespace Url | |
string SvgNamespace = "http://www.w3.org/2000/svg"; | |
// Get root svg element of the document | |
Aspose.Svg.SVGSVGElement svgElement = document.RootElement; | |
// Create a defs element and add to the svgElement | |
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs"); | |
svgElement.AppendChild(defsElement); | |
// Create a filter element and add to the defsElement | |
var filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter"); | |
filterElement.Id = "shadow"; | |
filterElement.SetAttribute("x", "-20px"); | |
filterElement.SetAttribute("y", "-20px"); | |
filterElement.SetAttribute("height", "150px"); | |
filterElement.SetAttribute("width", "150px"); | |
defsElement.AppendChild(filterElement); | |
// Create a feOffset filter primitive and add to the filterElement | |
var feOffsetElement = (Aspose.Svg.Filters.SVGFEOffsetElement)document.CreateElementNS(SvgNamespace, "feOffset"); | |
feOffsetElement.In1.BaseVal = "SourceAlpha"; | |
feOffsetElement.SetAttribute("result", "offset"); | |
feOffsetElement.SetAttribute("dx", "3"); | |
feOffsetElement.SetAttribute("dy", "3"); | |
filterElement.AppendChild(feOffsetElement); | |
//// Create a feGaussianBlur filter primitive and add to the filterElement | |
//var feGaussianBlurElement = (Aspose.Svg.Filters.SVGFEGaussianBlurElement)document.CreateElementNS(SvgNamespace, "feGaussianBlur"); | |
//feGaussianBlurElement.In1.BaseVal = "offset"; | |
//feGaussianBlurElement.StdDeviationX.BaseVal = 3; | |
//feGaussianBlurElement.StdDeviationY.BaseVal = 3; | |
//feGaussianBlurElement.SetAttribute("result", "blur"); | |
//filterElement.AppendChild(feGaussianBlurElement); | |
// Create a feBlend filter primitive and add to the filterElement | |
var feBlendElement = (Aspose.Svg.Filters.SVGFEBlendElement)document.CreateElementNS(SvgNamespace, "feBlend"); | |
feBlendElement.In1.BaseVal = "SourceGraphic"; | |
feBlendElement.In2.BaseVal = "blur"; | |
feBlendElement.SetAttribute("mode", "normal"); | |
filterElement.AppendChild(feBlendElement); | |
// Create a text element and add to the svgElement | |
var textElement = (Aspose.Svg.SVGTextElement)document.CreateElementNS(SvgNamespace, "text"); | |
textElement.Style.FontSize = "5em"; | |
textElement.SetAttribute("x", "20px"); | |
textElement.SetAttribute("fill", "#C0C0C0"); | |
textElement.SetAttribute("y", "100px"); | |
textElement.TextContent = "Aspose.SVG API"; | |
textElement.SetAttribute("filter", "url(#shadow)"); | |
svgElement.InsertBefore(textElement, svgElement.FirstChild); | |
// Save the SVG document | |
document.Save(Path.Combine(dataDir, "DropShadow.svg")); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment