SVG C#'ta Metin Doygunluğu

Bir görüntüdeki doygunluk, renklerin yoğunluğu olarak tanımlanır. Bazen bir SVG görüntüsüne metin eklemeniz ve onu doyurmanız gerekebilir. Bu tür senaryolara uygun olarak, bu makale C# dilinde programlı olarak SVG görüntülerinde metin doygunluğunun nasıl gerçekleştirileceğini kapsar.

SVG Görüntüsünde Metni Doygunlaştırmak için C# API - Kurulum

Aspose.SVG for .NET API, SVG görüntüleri oluşturma veya değiştirme yeteneğine sahiptir. Farklı filtreler uygulayabilir ve Ölçeklenebilir Vektör Grafiği görüntülerinin birçok özelliğiyle çalışabilir, ayrıca SVG görüntülerini desteklenen biçimlere dönüştürebilirsiniz. DLL dosyasını indirmeniz veya aşağıdaki NuGet kurulum komutunu çalıştırmanız yeterlidir:

PM> Install-Package Aspose.SVG

C#’ta SVG Görüntüsünde Metni Doygunlaştırma

Bir SVG görüntüsüne metin ekleyebilir ve aşağıdaki adımlarla onu doyurabilirsiniz:

  1. Bir SVGDocument sınıf nesnesi oluşturun.
  2. Bir tanım ve filtre öğesi oluşturun.
  3. Bir feColorMatrix öğesi oluşturun ve SVG’ye metin ekleyin.
  4. Çıkış SVG görüntüsünü kaydedin.

Aşağıdaki bölüm, bir C# kod parçacığında bu adımların nasıl gerçekleştirileceğini daha ayrıntılı olarak açıklamaktadır:

C# ile SVG Görüntüsünde Metni Programlı Olarak Doygunlaştırın

Bir SVG görüntüsündeki metni aşağıdaki adımlarla doyurabilirsiniz:

  1. Bir SVGDocument sınıf nesnesi oluşturun.
  2. Kök SVG öğesine erişin ve ad alanı URL’sini ayarlayın.
  3. Bir SVGDefsElement sınıf nesnesi oluşturun ve bunu SVG öğesine ekleyin.
  4. Bir SVGFEColorMatrixElement sınıfı örneği başlatın ve farklı değerler ayarlayın.
  5. Bir SVGTextElement sınıf nesnesi tanımlayın ve SVG’ye metin ekleyin.
  6. Son olarak, çıktı SVG görüntüsünü Save() yöntemiyle dışa aktarın.

Aşağıdaki kod parçacığı, C# dilinde renk matrisi ile doygunluk efektinin nasıl oluşturulacağını gösterir:

// SVGDocument sınıfının bir örneğini oluşturun
Aspose.Svg.SVGDocument document = new Aspose.Svg.SVGDocument();

// SVG Ad Alanı URL'sini Ayarla
string SvgNamespace = "http://www.w3.org/2000/svg";
// Belgenin kök svg öğesini alın
Aspose.Svg.SVGSVGElement svgElement = document.RootElement;


// Bir defs öğesi oluşturun ve svgElement öğesine ekleyin
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// Bir filtre öğesi oluşturun ve defsElement öğesine ekleyin
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);


// Bir feColorMatrix öğesi oluşturun
var feColorMatrixElement = (Aspose.Svg.Filters.SVGFEColorMatrixElement)document.CreateElementNS(SvgNamespace, "feColorMatrix");
feColorMatrixElement.In1.BaseVal = "SourceGraphic";
feColorMatrixElement.SetAttribute("type", "saturate");
feColorMatrixElement.SetAttribute("values", "0.2");
filterElement.AppendChild(feColorMatrixElement);

// Bir metin öğesi oluşturun ve svgElement öğesine ekleyin
var textElement = (Aspose.Svg.SVGTextElement)document.CreateElementNS(SvgNamespace, "text");
textElement.Style.FontSize = "5em";
textElement.SetAttribute("x", "20px");
textElement.SetAttribute("fill", "blue");
textElement.SetAttribute("y", "100px");
textElement.TextContent = "Aspose.SVG for .NET API";
textElement.SetAttribute("filter", "url(#shadow)");
svgElement.InsertBefore(textElement, svgElement.FirstChild);

// SVG belgesini kaydedin
document.Save(Path.Combine(dataDir, "TextSaturation.svg"));

Ücretsiz API Lisansı Alın

API’nin tüm özelliklerini tam kapasiteyle değerlendirmek için bir ücretsiz geçici lisans talep edebilirsiniz.

Çözüm

Bu makalede, C# dilinde programlı olarak bir SVG görüntüsünde metin doygunluğunun nasıl uygulanacağını öğrendiniz. API’de yer alan diğer çeşitli özellikleri öğrenmek için ise dokümantasyon bölümüne göz atabilirsiniz. Endişelerinizi veya belirsizliğinizi tartışmak isterseniz, lütfen ücretsiz destek forumundan bize ulaşmaktan çekinmeyin.

Ayrıca bakınız