Optimizer SVG

Optimalkan dan minifikasi file SVG Anda dengan menghapus komentar, metadata, dan spasi yang tidak perlu.

Pratinjau

Tentang optimasi SVG

File SVG yang diekspor dari Illustrator, Figma, atau Inkscape sering berisi metadata, komentar, atribut spesifik editor, dan spasi berlebih yang meningkatkan ukuran file tanpa memengaruhi rendering visual. Mengoptimalkan SVG dapat mengurangi ukurannya 20 hingga 60%, yang meningkatkan waktu pemuatan. Alat ini menerapkan optimasi yang aman yang mempertahankan tampilan visual.

Cara kerjanya

  1. Tempel atau unggah SVG: masukkan markup SVG secara langsung atau unggah file .svg yang diekspor dari Illustrator, Figma, atau Sketch.
  2. Konfigurasi pass optimasi: pilih optimasi mana yang akan diterapkan, penghapusan komentar, penghapusan metadata, penyederhanaan jalur, dan normalisasi viewBox.
  3. Optimalkan: alat menjalankan pass yang dipilih dan menampilkan persentase pengurangan ukuran.
  4. Unduh atau salin: simpan SVG yang dioptimalkan atau salin markup untuk ditempel di kode Anda.

Mengapa mengoptimalkan SVG Anda?

File SVG yang diekspor dari alat desain penuh dengan data yang tidak perlu, metadata editor, deklarasi gaya inline pada nilai default, grup kosong, atribut transformasi berlebih, dan komentar. Bobot tambahan ini meningkatkan ukuran tanpa mengubah rendering. SVGO (pengoptimal SVG standar industri yang digunakan di sini) biasanya dapat mengurangi ukuran 50 hingga 80% sambil mempertahankan rendering pada level piksel. SVG yang lebih kecil dimuat lebih cepat, terintegrasi lebih cepat di HTML, dan mengurangi bandwidth, terutama penting untuk sistem ikon yang memuat puluhan SVG per halaman.

Optimasi yang diterapkan

Sejarah singkat SVG dan SVGO

Scalable Vector Graphics dimulai sebagai persaingan antara dua proposal W3C: Precision Graphics Markup Language (PGML) dari Adobe, IBM, Netscape dan Sun, dan Vector Markup Language (VML) dari Microsoft. Keduanya diserahkan pada 1998; kompromi W3C menjadi SVG, direkomendasikan sebagai SVG 1.0 pada September 2001. Internet Explorer terkenal menolak mengirimkan dukungan SVG hingga IE9 (2011), sementara Firefox, Safari, dan Opera mendukungnya sejak pertengahan 2000-an. SVG 1.1 muncul pada 2003, dengan Edisi Kedua pada 2011. SVG Tiny 1.2 menargetkan perangkat seluler pada 2008. SVG 2 mulai dirancang sekitar 2016 tetapi terhenti; saat ini tetap sebagai Candidate Recommendation Draft (terakhir disentuh pada 2018), dengan browser mengirim bagian secara individual. Optimasi datang kemudian. SVGO dibuat oleh Kir Belevich (svg-go) dan pertama kali dipublikasikan di GitHub pada Oktober 2012, ditulis dalam JavaScript. Itu menjadi standar de facto, terintegrasi ke dalam webpack-loader, Vite, Sketch, plugin ekspor Figma, dan UI web SVGOMG oleh Jake Archibald (tim Chrome) yang diluncurkan pada 2015. SVGO 3 (dirilis pada 2023) memodernisasi basis kode. Alat ini mengimplementasikan subset aman dari plugin SVGO yang paling berdampak, berjalan sepenuhnya di browser Anda.

Apa yang sebenarnya dilakukan pengoptimal SVG

Di mana optimasi SVG penting

Kesalahan optimasi yang merusak SVG

Pertanyaan yang lebih sering diajukan

Berapa banyak optimasi SVG yang sebenarnya dapat menghemat?

Ini sangat bergantung pada sumber. Ekspor Adobe Illustrator sering menyusut 60-80% pada pass pertama, sebagian besar dari metadata, namespace editor, dan pengurangan presisi desimal. Ekspor Figma lebih bersih dari kotak (biasanya hemat 20-40%). SVG yang ditulis tangan oleh pengembang? Sering 5-15%, karena tidak banyak yang harus dilepas. Logo Wikipedia, kasus ekstrem bloat Illustrator, dari 39 KB ke 11 KB. Ikon 24×24 tipikal dari Figma turun dari 1,4 KB ke 0,6 KB.

Kapan saya harus menyisipkan SVG vs menggunakannya sebagai file eksternal?

Inline (<svg>...</svg> dalam HTML) untuk ikon kecil (di bawah 2 KB), konten kritis di atas lipatan, dan di mana pun Anda memerlukan CSS untuk memberi gaya SVG (mis. currentColor, status hover, mode gelap). File eksternal (<img src="icon.svg"> atau CSS background-image) untuk ikon identik yang digunakan berulang kali (browser menyimpan cache), ilustrasi yang lebih besar, konten yang tidak membutuhkan tema CSS. Sprite SVG (file tunggal dengan beberapa elemen <symbol>, dirujuk oleh <use>) adalah pola sistem ikon 2014-2019, sekarang sebagian besar digantikan oleh komponen inline-svg di React/Vue/Svelte.

Apakah ada risiko keamanan di SVG yang tidak dioptimalkan?

Ya. SVG dapat menyematkan tag <script> dan handler peristiwa onload, onclick; SVG yang diunggah pengguna adalah vektor XSS. SVG dapat merujuk sumber daya eksternal melalui <image href="...">, membocorkan IP pemirsa. Font SVG (usang tetapi masih dapat diuraikan) secara historis memiliki buffer overflow. Pengoptimal yang baik mengupas <script> dan handler peristiwa sebagai bagian dari pembersihan; jika Anda menerima unggahan SVG pengguna, jalankan melalui pembersih yang diperkuat (DOMPurify dengan profil SVG) sebelum menyajikan.

Dapatkah saya mengoptimalkan SVG menggunakan baris perintah?

Ya. npx svgo input.svg -o output.svg menggunakan pustaka SVGO kanonis. Konfigurasikan plugin melalui svgo.config.js. Integrasi CI: imagemin-svgo di webpack, vite-plugin-svgo, GitHub Action antfu/svg-opt. Untuk optimasi batch: svgo -f ./icons -o ./icons-optimised. Alat browser di sini lebih cepat untuk kasus satu kali dan bekerja tanpa Node terinstal.

Apakah SVG saya dikirim ke server saat saya mengoptimalkan di sini?

Tidak. Optimasi berjalan sepenuhnya di browser Anda melalui JavaScript pada markup SVG yang Anda tempel. Buka tab Network di DevTools saat mengoptimalkan; Anda akan melihat nol permintaan keluar. Aman untuk logo berpemilik, desain ikon yang belum dirilis, SVG perusahaan internal, dan apa pun yang tunduk pada NDA.

Alat terkait