wypełnij i obrysuj w svg za pomocą csharp

SVG (Scalable Vector Graphics) to format plików wektorowych oparty na XML, przyjazny dla sieci. Służy do wyświetlania informacji wizualnych na stronie internetowej. Obrazy SVG są skalowalne bez zmiany jakości obrazu. W tym artykule nauczymy się, jak pracować z wypełnieniami i obrysami w SVG przy użyciu języka C#.

W tym artykule zostaną omówione następujące tematy:

  1. C# API do wypełniania i obrysowywania w SVG
  2. Co to jest wypełnienie SVG
  3. Co to jest obrys SVG
  4. Obrysy i wypełnienia w SVG
  5. Wypełnij i obrysuj okrąg w SVG
  6. Wypełnij i obrysuj ścieżkę w SVG
  7. Zastosuj wypełnienie i obrys, używając stylu

C# API do wypełniania i obrysowywania w SVG

Aby pracować z atrybutami wypełnienia i obrysu SVG w C#, użyjemy API Aspose.SVG for .NET. Umożliwia ładowanie, analizowanie, renderowanie, tworzenie i konwersję plików SVG do popularnych formatów bez żadnych zależności programowych.

Klasa SVGDocument interfejsu API reprezentuje katalog główny hierarchii SVG i przechowuje całą zawartość. Metoda Save() tej klasy pozwala na zapisanie SVG w określonej ścieżce pliku. Metoda QuerySelector() zwraca pierwszy element w dokumencie pasujący do selektora. Interfejs API obsługuje popularne kształty, takie jak prostokąty, koła, elipsy, linie, polilinie itp. Interfejs API zapewnia osobne klasy reprezentujące te obsługiwane kształty, takie jak SVGCircleElement dla okręgu, SVGPolygonElement dla wielokąta itp.

Proszę pobrać bibliotekę DLL interfejsu API lub zainstalować ją za pomocą NuGet.

PM> Install-Package Aspose.SVG

Co to jest wypełnienie SVG?

Właściwość fill jest jednym z podstawowych atrybutów prezentacji SVG używanych do ustawiania koloru kształtu wewnątrz jego konturu.

Możemy zdefiniować następujące atrybuty wypełnienia:

  • fill: Ustawia kolor do wypełnienia. Określ brak lub przezroczystość, jeśli nie ma wypełnienia.
  • fill-opacity: Ustawia wartość krycia między 0 a 1.
  • reguła wypełnienia: określa, w jaki sposób określany jest wewnętrzny obszar kształtu, np. niezerowy, parzysty.

Co to jest udar SVG?

Właściwość stroke definiuje kontur lub obramowanie kształtów SVG. Atrybut prezentacji obrysu ustawia kolor konturu kształtu.

Możemy ustawić następujące atrybuty obrysu:

  • obrys: Ustawia wartość koloru.
  • stroke-dasharray: Określa typy linii przerywanych.
  • przesunięcie kreski-pociągnięcia
  • stroke-linecap: Kontroluje kształt końców linii, takich jak tyłek, kwadrat i okrąg.
  • stroke-linejoin: Określa, w jaki sposób łączą się dwie linie, takie jak skos, skos i zaokrąglenie.
  • stroke-miterlimit: Musi być większy lub równy 1, jeśli jest używany.
  • stroke-opacity: Ustawia wartość krycia między 0 a 1.
  • szerokość obrysu: Ustawia szerokość.

Wypełnienia i obrysy w SVG

Zarówno wypełnienie, jak i obrys są używane do dodawania kolorów, gradientów lub wzorów do grafiki w SVG. Wypełnienie maluje wnętrze elementu SVG, podczas gdy obrys maluje jego kontur. Możemy określić zarówno wypełnienie, jak i obrys w atrybucie stylu lub użyć ich jako atrybutów prezentacji.

Możemy ustawić wypełnienia SVG i obrysy SVG w atrybucie stylu, jak pokazano poniżej:

style="stroke:#00ff00; stroke-width:2; fill:#ff0000"

Możemy również użyć tych samych właściwości stylu w atrybutach prezentacji, jak pokazano poniżej:

stroke="green" stroke-width="2" fill="#ff0000"

Aby określić kolor SVG, możemy użyć nazw kolorów, takich jak czerwony, niebieski itp. Możemy również użyć wartości RGB lub wartości HEX dla kolorów.

Wypełnij i obrysuj okrąg w C#

Możemy ustawić właściwości wypełnienia SVG i obrysu SVG dla okręgu, wykonując poniższe czynności:

  1. Najpierw załaduj istniejący plik SVG przy użyciu klasy SVGDocument.
  2. Następnie pobierz element główny dokumentu.
  3. Następnie znajdź wszystkie elementy okręgu za pomocą metody QuerySelectorAll().
  4. Następnie ustaw atrybuty wypełnienia dla wybranego elementu SVGCircleElement.
  5. Opcjonalnie ustaw atrybuty obrysu dla wybranego elementu SVGCircleElement.
  6. Na koniec zapisz wyjściowy obraz SVG za pomocą metody Save().

Poniższy przykładowy kod pokazuje, jak ustawić wypełnienie i obrys elementu okręgu pliku SVG w języku C#.

// Ten przykład kodu demonstruje, jak ustawić atrybuty wypełnienia i obrysu dla elementu okręgu pliku SVG w języku C#.
// Załaduj istniejący obraz SVG
var document = new SVGDocument(@"C:\Files\SVG\Circle.svg");

// Pobierz główny element SVG dokumentu
var svgElement = document.RootElement;

// Znajdź wszystkie elementy okręgu w elemencie g
NodeList circleNodes = svgElement.QuerySelectorAll("circle");

// Zdobądź pierwszy element koła
SVGCircleElement circleElement = circleNodes[0] as SVGCircleElement;

// Ustaw atrybuty wypełnienia
circleElement.SetAttribute("fill", "#0F0");
circleElement.SetAttribute("fill-opacity", "0.3");

// Ustaw atrybuty obrysu
circleElement.SetAttribute("stroke", "#508484");
circleElement.SetAttribute("stroke-width", "10");

// Zapisz plik SVG
document.Save(@"C:\Files\SVG\Fill-Circle.svg");
Wypełnij i obrysuj okrąg w CSharp

Ustaw wypełnienie i obrys dla elementu okręgu w języku C#.

Poniżej znajduje się zawartość obrazu Circle.svg.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
	<g stroke="black">
		<circle r="30" cx="50" cy="35" fill="none"/>
    </g>
</svg>

Oto zawartość obrazu Fill-Circle.svg.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
	<g stroke="black">
		<circle r="30" cx="50" cy="35" fill="#0F0" fill-opacity="0.3" stroke="#508484" stroke-width="10"/>
    </g>
</svg>

Wypełnij i obrysuj ścieżkę w C#

Możemy ustawić właściwości wypełnienia SVG i obrysu SVG dla elementu ścieżki w SVG, wykonując czynności podane poniżej:

  1. Najpierw załaduj istniejący plik SVG przy użyciu klasy SVGDocument.
  2. Następnie pobierz element główny dokumentu.
  3. Następnie pobierz element ścieżki za pomocą metody QuerySelector().
  4. Następnie ustaw atrybuty wypełnienia dla wybranego elementu SVGPathElement.
  5. Opcjonalnie ustaw atrybuty obrysu dla wybranego elementu SVGPathElement.
  6. Na koniec zapisz wyjściowy obraz SVG za pomocą metody Save().

Poniższy przykładowy kod pokazuje, jak ustawić wypełnienie i obrys dla elementu ścieżki pliku SVG w języku C#.

// Ten przykład kodu demonstruje, jak ustawić atrybuty wypełnienia i obrysu dla elementu ścieżki pliku SVG w języku C#.
// Załaduj istniejący obraz SVG
var document = new SVGDocument(@"C:\Files\SVG\Sample-Path.svg");

// Pobierz główny element SVG dokumentu
var svgElement = document.RootElement;

// Pobierz pierwszy element ścieżki
SVGPathElement lineElement = svgElement.QuerySelector("path:nth-child(1)") as SVGPathElement;

// Ustaw atrybuty wypełnienia
lineElement.SetAttribute("fill", "orange");
lineElement.SetAttribute("fill-opacity", "0.6");

// Ustaw atrybuty obrysu
lineElement.SetAttribute("stroke", "#508484");
lineElement.SetAttribute("stroke-width", "10");

// Zapisz plik SVG
document.Save(@"C:\Files\SVG\Fill-Path.svg");
Wypełnij i obrysuj ścieżkę w CSharp

Ustaw wypełnienie i obrys dla elementu ścieżki w języku C#.

Poniżej znajduje się zawartość obrazu Sample-Path.svg.

<svg height="400" width="800" xmlns="http://www.w3.org/2000/svg">
	<g stroke="black">
		<path d="M 10 100 Q 25 10 180 100 T 250 100 T 300 100 T 390 130" stroke="red" stroke-width="3" fill="none" />
    </g>
</svg>

Poniżej znajduje się zawartość obrazu Fill-Path.svg.

<svg height="400" width="800" xmlns="http://www.w3.org/2000/svg">
	<g stroke="black">
		<path d="M 10 100 Q 25 10 180 100 T 250 100 T 300 100 T 390 130" stroke="#508484" stroke-width="10" fill="orange" fill-opacity="0.6"/>
    </g>
</svg>

Zastosuj wypełnienie i obrys, używając stylu w języku C#

Możemy również zastosować właściwości wypełnienia SVG i obrysu SVG za pomocą atrybutu stylu CSS, wykonując czynności podane poniżej:

  1. Najpierw utwórz instancję klasy SVGDocument.
  2. Następnie pobierz element główny dokumentu.
  3. Następnie utwórz element okręgu za pomocą metody CreateElementNS().
  4. Następnie ustaw podstawowe właściwości okręgu, takie jak Cx, Cy i R.
  5. Następnie zastosuj atrybut stylu za pomocą metody SetAttribute().
  6. Następnie dołącz dziecko za pomocą metody AppendChild().
  7. Na koniec zapisz wyjściowy obraz SVG za pomocą metody Save().

Poniższy przykład kodu pokazuje, jak zastosować wypełnienie i obrys przy użyciu stylu CSS w języku C#.

// Ten przykład kodu demonstruje, jak zastosować atrybuty wypełnienia i obrysu przy użyciu stylu CSS w języku C#.
// Utwórz nowy plik SVG
using (var document = new SVGDocument())
{
    // Pobierz główny element SVG dokumentu
    var svgElement = document.RootElement;

    const string @namespace = "http://www.w3.org/2000/svg";
    
    // Dodaj krąg
    var circle = (SVGCircleElement)document.CreateElementNS(@namespace, "circle");
    circle.Cx.BaseVal.Value = 50;
    circle.Cy.BaseVal.Value = 50;
    circle.R.BaseVal.Value = 40;
    
    // Ustaw atrybut stylu
    circle.SetAttribute("style", "fill:blue; stroke:#fb6796; stroke-width:5");
    
    // Dodaj okrąg do elementu głównego
    svgElement.AppendChild(circle);
    
    // Zapisz plik SVG
    document.Save(@"C:\Files\SVG\ApplyStyle.svg");
}
Zastosuj-Wypełnij-i-Obrysuj-używając-Style-w-CSharp

Zastosuj wypełnienie i obrys, używając stylu CSS

<svg xmlns="http://www.w3.org/2000/svg">
	<g>
		<circle cx="50" cy="50" r="40" style="fill: blue; stroke: rgb(251, 103, 150); stroke-width: 5;"/>
	</g>
</svg>

Uzyskaj bezpłatną tymczasową licencję

Możesz uzyskać bezpłatną tymczasową licencję, aby wypróbować Aspose.SVG for .NET bez ograniczeń ewaluacyjnych.

Wniosek

W tym artykule dowiedzieliśmy się, jak:

  • utwórz nowy obraz SVG;
  • załaduj istniejący obraz SVG;
  • edytować obraz SVG;
  • ustawić atrybuty wypełnienia i obrysu dla kształtów SVG;
  • ustawić atrybuty stylu dla kształtów w języku C#.

Poza tym możesz dowiedzieć się więcej o Aspose.SVG for .NET w dokumentacji i poznać różne funkcje obsługiwane przez API. W przypadku jakichkolwiek niejasności prosimy o kontakt na naszym forum.

Zobacz też