Blog Details

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
))