
Generate Svg File Dengan SVGWrite
svgwrite
adalah pustaka Python yang digunakan untuk membuat dan memanipulasi file SVG (Scalable Vector Graphics). Dengan pustaka ini, Anda dapat membuat elemen SVG seperti garis, lingkaran, teks, dan bentuk lainnya secara terprogram.
Instalasi
Untuk menggunakan svgwrite
, Anda bisa menginstalnya dengan pip:
pip install svgwrite
Contoh Penggunaan
Berikut contoh kode untuk membuat file SVG dengan sebuah lingkaran dan teks di dalamnya:
import svgwrite
# Buat file SVG baru
dwg = svgwrite.Drawing("contoh.svg", profile="tiny")
# Tambahkan lingkaran
dwg.add(dwg.circle(center=(100, 100), r=50, fill="blue"))
# Tambahkan teks
dwg.add(dwg.text("Hello SVG", insert=(70, 105), fill="white"))
# Simpan file
dwg.save()
Kode di atas akan menghasilkan file contoh.svg
yang berisi lingkaran biru dengan teks "Hello SVG" di dalamnya.
Fitur Utama svgwrite
- Membuat berbagai elemen SVG (garis, lingkaran, poligon, teks, dll.).
- Mendukung transformasi seperti rotasi dan skala.
- Dapat digunakan untuk menghasilkan grafik vektor secara dinamis.
Dalam svgwrite
untuk Python, Anda bisa membuat SVG dengan ukuran HD (1920x1080) seperti ini:
dwg = svgwrite.Drawing("output.svg", size=("1920px", "1080px"))
Membuat Kotak
dwg.add(dwg.rect(insert=(100, 100), size=(300, 200), fill="blue"))
Memperbagus teks
dwg.add(dwg.text(
"Hello, SVG!",
insert=(200, 200), # Posisi teks
fill="red", # Warna teks
stroke="black", # Warna border (garis tepi)
stroke_width="1px", # Ketebalan border
font_size="50px", # Ukuran font
font_family="Arial" # Jenis font
))
Menggunakan Font yang Terinstal di Sistem
dwg.add(dwg.text(
"Custom Font Example",
insert=(200, 200),
fill="black",
font_size="50px",
font_family="Comic Sans MS" # Gantilah dengan font yang tersedia di sistem Anda
))
Menggunakan font dari url
# Tambahkan elemen style untuk mengimpor font
style = """
@font-face {
font-family: 'MyCustomFont';
src: url('myfont.ttf'); #href="file:///.../DejaVuSans.svg"/
}
text {
font-family: 'MyCustomFont';
}
"""
dwg.defs.add(dwg.style(style))
dwg.add(dwg.text(
"Hello, SVG!",
insert=(200, 200),
fill="blue",
font_size="50px",
font_family="MyCustomFont"
))
Menggunakan Font dari Google Fonts atau URL
style = """
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
text {
font-family: 'Roboto', sans-serif;
}
"""
dwg.defs.add(dwg.style(style))
# Tambahkan teks dengan font dari Google Fonts
dwg.add(dwg.text(
"Google Font Example",
insert=(200, 200),
fill="black",
font_size="50px",
font_family="Roboto"
))
Pusatkan Teks di Tengah Canvas (1920x1080)
width, height = 1920, 1080
text = dwg.text(
"Centered Text",
insert=(width / 2, height / 2), # Posisi di tengah canvas
text_anchor="middle", # Agar teks terpusat secara horizontal
dominant_baseline="middle", # Agar teks terpusat secara vertikal
fill="black",
font_size="50px",
font_family="Arial"
)
Membuat Kotak Gradien
# Definisikan gradasi transparan
linear_gradient = dwg.defs.add(dwg.linearGradient(id="grad1", x1="0%", y1="0%", x2="100%", y2="0%"))
linear_gradient.add_stop_color(offset="0%", color="blue", opacity=1) # Warna biru penuh
linear_gradient.add_stop_color(offset="100%", color="red", opacity=0) # Warna merah transparan
# Tambahkan kotak dengan gradasi transparan
dwg.add(dwg.rect(
insert=(500, 300), size=(600, 400),
fill="url(#grad1)", # Menggunakan gradasi yang dibuat
stroke="black", stroke_width=2
))