Bersih-bersih Berkas SVG dengan Scour
Jika kita bekerja dengan Inkscape dengan melakukan terlalu banyak perubahan, banyak mengimport berkas dari luar, maka berkas kerja kita sedikit demi sedikit akan penuh dengan hal-hal yang sudah tidak kita butuhkan lagi, membuat ukurannya membengkak.
Contoh Kasus
Ukuran-ukuran yang diujicobakan dalam tulisan ini mungkin berbeda hasilnya dengan milik pembaca, tergantung pada beberapa hal (perangkat lunak, konfigurasi, filesystem). Penulis menggunakan Inkscape 0.48.4 r9939 dan Scour 0.27.
Misalnya, dari sebuah berkas baru, kita membuat bentuk kotak, dan memberi warna gradient dari hitam ke putih menggunakan linear gradient bawaan inkscape yang sudah ada (linearGradient4449).

Jika berkas yang sederhana ini disimpan, kita akan mendapatkan berkas yang hanya berukuran 2.3 KB.
http://upload.wikimedia.org/wikipedia/commons/7/76/Mozilla_Firefox_logo_2013.svg
Tautan di atas adalah logo peramban web Firefox dengan ukuran 237.2 KB, yang menyimpan banyak konfigurasi gradient untuk berbagai warna.
Kita coba mengimport berkas tersebut (baik dengan drag-&-drop, copy paste, atau pun melalui menu import) dan menyimpan hasilnya. Ukurannya menjadi 268.5 KB.

Jika kita coba menghapus keseluruhan logo Firefox dan menyisakan gambar kotak saja, kemudian disimpan, maka berkasnya akan menjadi berukuran 32.4 KB.
Mengapa tidak menjadi 2.3 KB, seperti ukuran semula? Karena Inkscape masih menyimpan berbagai data dari gambar logo Firefox yang tadi. Salah satu data tersebut adalah konfigurasi berbagai warna yang digunakan di gambar logo Firefox, seperti yang dapat dilihat di bawah ini.

Scour, Si Tukang bersih-bersih
Scour (http://codedread.com/scour/) adalah skrip python yang dapat membersihkan berkas SVG dari data-data yang tidak kita perlukan lagi. Menggunakan Scour cukup mudah, tinggal diunduh dan dijalankan langsung dengan python. Dengan asumsi skrip ini berada pada direktori yang sama dengan berkas SVG,
$ python scour.py < berkas_asli.svg > berkas_baru.svg
Hasil uji coba saya untuk berkas yang berukuran 32.4 KB tadi adalah sangat fantastis, menjadi berukuran hanya 1.1 KB, jauh lebih kecil dari kondisi ketika berkas tersebut belum ditambahkan apa-apa. Template gradient-nya pun langsung hanya menyisakan yang dibutuhkan saja, warna-warna gradient khas Firefox sudah hilang.
Scour bahkan bisa lebih angresif dengan menambahkan beberapa opsi.
$ python scour.py --enable-comment-stripping --enable-id-stripping --remove-metadata < berkas_asli.svg > berkas_baru.svg
Jika perintah diatas dijalankan untuk berkas tadi maka akan menghasilkan ukuran yang jauh lebih kecil lagi, hanya 707 B! Saya pernah mengerjakan sebuah proyek yang berkasnya mencapai ukuran 1.6MB. Setelah dioptimasi dengan Scour, ukurannya menjadi jauh lebih kecil, hanya 73KB.
Misalnya anda punya berkas banyak sekali dan ingin mengoptimasi semuanya sekaligus, jangan khawatir. Dengan fleksibilitas bash, kita bisa membuat skrip perulangan untuk kebutuhan ini.
#!/bin/bash mkdir scour-output SAVEIF=$IFS IFS=$(echo -en "\n\b") for file in $(ls *svg) do name=${file%%.svg} python scour.py --enable-comment-stripping --enable-id-stripping --remove-metadata < $name.svg > scour-output/$name.svg done
Sebelum anda memberikan hasil karya dalam bentuk SVG ke orang lain / publik, atau menggunggahnya dalam surat elektronik atau media apa saja, pertimbangkan untuk mengoptimasi berkas anda dengan Scour, baik untuk menghemat ruang maupun bandwith.
Latest posts by piko (see all)
- Membangun APT-Web v2 - 30 Okt 2015
- Bersih-bersih Berkas SVG dengan Scour - 6 Sep 2014