📌 Pendahuluan
Dalam dunia desain grafis dan pengolahan citra, vektorisasi gambar dari format raster menjadi SVG atau EPS sangat penting, terutama untuk keperluan cetak atau digitalisasi. Artikel ini membahas pengembangan sebuah aplikasi GUI menggunakan Python yang mampu mengonversi berbagai format gambar (JPG, PNG, BMP, WebP) menjadi format SVG dan EPS dengan berbagai fitur tambahan seperti penghapusan noise, blur gradasi, penguatan stroke, dan penghapusan latar belakang.
🔧 Teknologi dan Library yang Digunakan
Berikut adalah pustaka Python yang digunakan:
-
TkinterDnD2
: untuk drag and drop file gambar ke GUI. -
Tkinter
,ttk
: untuk GUI utama. -
cv2
(OpenCV): untuk pemrosesan gambar (grayscale, blur, threshold, dll). -
Pillow (PIL)
: manipulasi gambar untuk simpan PNG/JPG. -
subprocess
: untuk memanggil Potrace (konversi BMP ke SVG/EPS). -
logging
: merekam aktivitas ke file log. -
os
,threading
: manajemen file dan threading UI.
⚙️ Struktur Fungsional Aplikasi
1. Manajemen Aktivasi (Serial Key)
Aplikasi dilindungi oleh serial number agar pengguna hanya bisa menggunakan fitur penuh jika menginput serial yang valid:
Jika serial tidak cocok, aplikasi akan menutup diri.
2. Fitur Konversi Gambar
Fungsi utama adalah convert_image()
, yang:
-
Menghapus noise (optional)
-
Mengaburkan gambar (blur)
-
Menghapus latar belakang (optional)
-
Membuat threshold biner dari gambar grayscale
-
Menguatkan garis dengan dilate
-
Menyimpan gambar hasil sebagai:
-
PNG dan JPG dari PIL
-
SVG dan EPS dengan Potrace
-
3. Pemrosesan Batch dengan Progress Bar
GUI memungkinkan pengguna memilih hingga 100 gambar sekaligus, dan menampilkannya di progress bar.
4. Drag and Drop
Aplikasi memungkinkan drag-drop langsung file gambar:
5. GUI Interaktif
-
Checkbox fitur: blur, stroke, eps, noise removal, background removal
-
Tombol: pilih gambar, hapus pilihan, konversi, batal konversi
-
Pesan status ditampilkan dalam
Label
-
Progress bar selama proses batch
🧠 Alur Proses Aplikasi
-
Start aplikasi dan validasi serial key
-
Pengguna drag & drop atau memilih gambar
-
Centang fitur yang diinginkan (blur, stroke, dsb.)
-
Klik tombol Konversi
-
Proses dilakukan dalam thread terpisah agar UI tetap responsif
-
Gambar diproses dan hasil disimpan ke folder
output/
-
User mendapatkan notifikasi setelah konversi selesai
🧪 Contoh Kasus Penggunaan
Misalnya, seorang desainer ingin mengonversi logo hitam-putih menjadi SVG tanpa background:
-
Centang opsi Hapus Latar Belakang
-
Drag gambar
logo.png
-
Klik “Konversi”
-
File
logo_vector.svg
muncul di folderoutput/
✅ Kelebihan Aplikasi Ini
-
Standalone, tidak perlu internet atau instalasi kompleks
-
Mendukung format populer (JPG, PNG, BMP, WebP)
-
UI ramah pengguna dan tidak membutuhkan CLI
-
Bisa memproses batch gambar
-
Terdapat proteksi lisensi dengan serial number
📌 Kekurangan dan Pengembangan Selanjutnya
Beberapa hal yang bisa dikembangkan ke versi profesional:
-
Tampilan antarmuka lebih modern (dengan
customtkinter
atauPyQt
) -
Preview hasil SVG langsung di dalam GUI
-
Konversi real-time sebelum disimpan
-
Pengaturan warna garis output dan skala SVG
-
Mode CLI untuk integrasi pipeline otomatis
-
Penambahan format output seperti PDF
🏁 Kesimpulan
Aplikasi ini adalah contoh ideal dari pemanfaatan Python untuk pembuatan tool produktivitas desktop, terutama untuk keperluan grafis berbasis vektor. Kombinasi dari OpenCV
, TkinterDnD
, dan Potrace
memberikan kemampuan powerful dengan kode yang tetap dapat dipahami oleh developer menengah. Penggunaan threading, validasi lisensi, dan fitur interaktif membuat aplikasi ini siap digunakan secara profesional, dan menjadi pondasi kuat untuk pengembangan lebih lanjut.
0 Comments