Mengedit SVG dengan C#
Pelajari cara mengedit SVG secara terprogram dengan C#.
Mengedit SVG dalam C #
Perpustakaan Aspose.SVG for .NET menyediakan sekumpulan kelas dan metode untuk membuat, mengedit, mengonversi, dan manipulasi lainnya dengan file SVG. Setelah objek dokumen dibuat, objek tersebut dapat diisi dengan elemen SVG. Anda dapat menyesuaikan dokumen dengan menambahkan lebih banyak elemen seperti bentuk SVG, teks, filter, dll. Pada artikel ini, kita akan membahas dua contoh C# yang mendemonstrasikan pendekatan yang berbeda untuk membuat dan mengedit SVG: satu menggunakan Aspose.SVG Builder API dan yang lainnya menggunakan manipulasi DOM secara manual dengan pengaturan elemen dan atribut secara langsung.
Pertama, pastikan Anda telah menginstal Aspose.SVG for .NET API dalam proyek Anda. Proses instalasi cukup sederhana. Anda dapat menginstalnya melalui Konsol Manajer Paket NuGet dengan perintah berikut:
Instal Aspose.SVG for .NET
Install-Package Aspose.SVG
Menambahkan elemen ke file SVG dengan Element Builders
Element Builders adalah kelas khusus dari Aspose.SVG Builder API yang memfasilitasi pembuatan dan modifikasi elemen SVG dalam kode. Mereka sering menggunakan pola seperti Pola Pembangun Fasih untuk menyediakan sintaks yang bersih dan mudah dibaca untuk mengatur atribut dan menyusun konten SVG secara terprogram. Kode berikut ini menunjukkan pendekatan yang ringkas dan elegan untuk membuat SVG dari awal menggunakan C#. Contoh ini menggunakan pola Fluent Builder dalam SVGSVGElementBuilder untuk membuat dan menambahkan elemen baru ke SVG: lingkaran yang dihias dan teks.
Kode C# untuk mengedit SVG dengan Element Builders
using Aspose.Svg.Builder;
using System.Drawing;
using System.IO;
...
using (var document = new SVGDocument())
{
// Create an <svg> element with specified width, height and viewBox, and add into it other required elements
var svg = new SVGSVGElementBuilder()
.Width(700).Height(300)
.ViewBox(0, 0, 700, 300)
.AddG(g => g
.AddCircle(circle => circle.Cx(130).Cy(130).R(60).Fill(Paint.None).Stroke(Color.Salmon).StrokeWidth(70).StrokeDashArray(2,14))
.AddText("I can add elements to SVG!", x: 270, y: 140, fontSize: 30, fill: Color.DarkRed)
)
.Build(document.FirstChild as SVGSVGElement);
// Save the document
document.Save(Path.Combine(OutputDir, "svg-from-scratch.svg"));
}
Menambahkan elemen ke file SVG
API Document Object Model (DOM) menyediakan kontrol penuh atas node SVG dan atributnya dan sepenuhnya sesuai dengan spesifikasi resmi SVG. Anda dapat memodifikasi dokumen dengan menambahkan node baru, menghapus node yang ada, atau mengedit kontennya. Sebagai contoh, Anda dapat menambahkan lingkaran yang dihias dan teks ke SVG:
Kode C # untuk mengedit SVG dengan manipulasi DOM tingkat rendah
using System.IO;
using Aspose.Html;
...
// Set SVG Namespace Url
string SvgNamespace = "http://www.w3.org/2000/svg";
using (var document = new SVGDocument())
{
var svgElement = document.RootElement;
// Create a text element and set its attributes
var textElement = (SVGTextElement)document.CreateElementNS(SvgNamespace, "text");
textElement.Style.FontSize = "2.0em";
textElement.SetAttribute("x", "270px");
textElement.SetAttribute("fill", "darkred");
textElement.SetAttribute("y", "140px");
textElement.TextContent = "I can add elements to SVG!";
// Create a circle element and set its attributes
var circleElement = (SVGCircleElement)document.CreateElementNS(SvgNamespace, "circle");
circleElement.Cx.BaseVal.Value = 130;
circleElement.Cy.BaseVal.Value = 130;
circleElement.R.BaseVal.Value = 60;
circleElement.SetAttribute("stroke", "salmon");
circleElement.SetAttribute("stroke-width", "70");
circleElement.SetAttribute("fill", "none");
circleElement.SetAttribute("stroke-dasharray", "2,14");
// Add the text and circle elements into svgElement
svgElement.AppendChild(textElement);
svgElement.AppendChild(circleElement);
// Save the document
document.Save(Path.Combine(OutputDir, "svg-from-scratch.svg"));
}
Mari kita lihat langkah-langkah sederhana untuk mengedit dokumen SVG yang menggambarkan kode # di atas. Elemen <circle>
dan <text>
SVG ditambahkan ke dokumen SVG yang dibuat:
- Untuk membuat dokumen SVG secara terprogram dari awal, gunakan konstruktor SVGDocument() tanpa parameter.
- Properti
RootElement
kelas SVGDocument menunjuk ke elemen<svg>
root dokumen. - Buat elemen
<text>
dan<circle>
dengan atribut dan tambahkan ke elemen<svg>
:- Anda dapat menggunakan metode CreateElementNS() untuk membuat instance kelas SVGTextElement dan SVGCircleElement.
- Panggil metode SetAttribute() untuk mengatur atribut yang menentukan posisi, ukuran, isi, dll.
- Gunakan metode
AppendChild()
untuk menambahkan elemen ke
<svg>
.
- Simpan file SVG yang telah diedit menggunakan metode Save() .
Hasil file yang kita buat di atas sama untuk kedua contoh kode (svg-from-scratch.svg) dan terlihat seperti ini:
Sumber daya yang berguna
- Artikel dokumentasi Edit file SVG – contoh C# memberi Anda informasi dasar tentang cara membaca atau mengedit Model Objek Dokumen dengan Aspose.SVG untuk API .NET. Anda akan belajar cara membuat elemen SVG dan cara bekerja dengannya – memodifikasi dokumen dengan menyisipkan node baru, menghapus atau mengedit konten node yang ada.
- Dalam bab Pembangun SVG – Pembuatan dan modifikasi SVG tingkat lanjut , Anda akan menemukan panduan untuk mengedit SVG yang efektif dengan API Aspose.SVG Builder, yang mencakup aspek-aspek mulai dari pembuatan elemen dasar hingga teknik tingkat lanjut seperti mixin dan gula sintaksis.
- Artikel Element Builders membahas tentang pembuat elemen yang digunakan dalam Aspose.SVG Builder API. Anda akan belajar tentang kelas SVGElementBuilder, pembangun khusus dan bagaimana mereka menyederhanakan pemrograman SVG.
Fungsi lain yang didukung
Gunakan pustaka Aspose.SVG C# untuk mengonversi, menggabungkan, mengedit dokumen SVG, mengonversi kode warna, membuat vektor gambar, dan banyak lagi!