Saya memiliki file vektor yang diunduh (format AI). File tersebut berisi gambar vektor sederhana dari berbagai jenis anjing. Saya telah memuat file dalam inkscape, memisahkannya dan ingin cara untuk menyelamatkan setiap vektor anjing sebagai file terpisah. Apakah ada cara untuk mengotomatisasi ini dengan Inkscape atau alat OS / Freeware lainnya? Kalau tidak, saya harus memilih masing-masing dan Simpan sebagai. Apapun bantuannya sangat dihargai!
PEMBARUAN Terima kasih kepada JSBueno untuk saran untuk mengedit file SVG yang sebenarnya. Saya tidak menyadari bahwa SVG hanyalah file XML. Saya harus dapat dengan mudah menelusuri file dan mengekspor masing-masing anjing sebagai file terpisah. Ngomong-ngomong, ini akan jauh lebih cepat daripada melakukannya melalui antarmuka yang merupakan tujuan dari posting ini. Terima kasih untuk semua sarannya.
Jawaban:
Ada dua solusi yang saya temukan untuk mengekspor beberapa objek dari Inkscape sebagai SVGs. Metode ini memiliki manfaat menjadi skrip yang dapat dijalankan secara otomatis dan tidak perlu mengedit SVG di editor teks.
Skrip svg-objek-ekspor bekerja dengan mengekspor semua objek berdasarkan ekspresi reguler. Dalam kasus Anda ini akan bekerja dengan mengekspor semua objek dengan ID tertentu. Untuk menggunakannya, klon pertama atau unduh skrip dari Github .
Di Inkscape Anda perlu mengubah ID semua objek yang ingin Anda ekspor memiliki pola nama file yang sama. Untuk melakukan ini, buka dialog Object Properties dengan masuk ke Object> Object Properties atau tekan Ctrl+ Shift+ O. Dalam bidang ID, ubah semuanya untuk memiliki ID nama bas yang sama
Dog_1
, misalnyaDog_2
,,Dog_3
dll. (Objek tidak dapat memiliki ID yang sama).Dengan file disimpan dan skrip diunduh, di terminal jalankan perintah berikut
python svg-objects-export.py --pattern 'Dog_*' /path/to/your/file.svg
Ini akan mengekspor semua objek dengan ID nama belakang "Dog_".
Ekstensi inx-exportobjects inkscape hanya akan mengekspor semua objek yang dipilih. Untuk menggunakannya, klon pertama atau unduh ekstensi dari Gitlab . Untuk menginstalnya salin file
export_objects.inx
danexport_objects.py
ke.config/inkscape/extensions/
. Di Inkscape Anda akan memiliki opsi yang disebut "Objek ke File ..." di Ekstensi> Ekspor. Pilih objek yang ingin Anda instal dan pilih opsi ini.Dalam kotak dialog ini, cukup ubah Direktori Ekspor ke tempat Anda ingin menyimpan file Anda dan ubah Nama Dasar ke nama file yang baru lalu tekan Terapkan.
File akan diekspor ke direktori yang Anda tentukan.
Masing-masing solusi memiliki banyak pilihan lain, seperti animasi ekspor gif, yang harus Anda coba.
sumber
Bergantung pada prasyaratnya, bahwa semua benda Anda dikelompokkan dan tidak digabungkan menjadi kelompok yang lebih besar, berikut ini cara melakukannya. (Saya menggunakan kucing dalam contoh, karena anjing tidak tersedia).
Di kanan bawah Anda melihat kucing yang disorot, objek id 5358, yang merupakan jalur tunggal, jadi saya menambahkan lantai hijau kemudian yang mengubahnya menjadi objek 5364 yang akan terjadi kemudian, jadi jangan biarkan membingungkan Anda. :)
Anda mendapatkan editor xml dengan menekan tombol 4 dari kanan (panah 1).
Saya mengubah g5358 ke g-cat-5358 (bidang 4) untuk memudahkan texttool untuk memilih objek-objek ini yang berfungsi untuk sebagian besar elemen yang tidak bertabrakan dengan nama-nama xml-svg (warna, meta, id, ... ).
Di jendela kiri Anda lihat, bahwa sudah ada entitas berganti nama, g-cat-5312 dekat ke atas pada tingkat indentasi yang sama.
Inkscape mengatur id unik untuk grup, tetapi mereka tidak harus berbentuk gNUMBER, Anda dapat mencampur karakter lain. Hanya saja, jangan memilih pengidentifikasi yang sudah ada.
Setelah mengubah pengidentifikasi, tekan 'setzen (set)' (5) untuk mengonfirmasi perubahan Anda. Anda melihat antarmuka Jerman di sini, YMMV.
Simpan svg (sebagai demo-cats.svg). Kami sekarang beralih ke scripting.
Apa fungsinya? Itu greps (cari dengan grep) untuk pola "g-cat-" yang merupakan awal dari bagian menarik kami.
id=${cat//[^0-9]/}
ekstrak id di bash dari ekspresi. Echo mencetaknya ke layar yang seharusnya membantu menemukan bug jika terjadi kesalahan. head -n 53 demo-cats.svg mengambil 53 baris pertama dari svg, yang berisi semua svg-boilerplate. Tergantung pada pengaturan Anda dengan berbagai svg-format (inkscape, terkompresi, normal svg, inkscape-terkompresi) ini mungkin berbeda. Dengannl demo-cats.svg | less
Anda bisa n umerate yang l ines, untuk menemukan titik pemotongan yang tepat dalam kasus Anda.^ Hingga bagian ini, garis harus dimasukkan.
Perintah berikutnya dilakukan dengan s tream ed itor sed:
sed -n "/$cat/,/^ <\/g>/p" demo-cats.svg;
kata (-n) tidak ada pencetakan (tapi) searche untuk kelompok kucing, hingga tag penutup g pada lekukan level 2 yang merupakan 4 ruang sebelum</g>
jika Anda tidak ubah preferensi Inkscape, yang mungkin Anda ingat jika Anda melakukannya. Kemudian tambahkan tag penutup untuk svg:echo "</svg>"
. Tulis hasilnya ke file 'cat- $ id.svg' (ini menimpa file yang ada secara diam-diam).Jadi saya berakhir dengan dua file: cat-5312.svg dan cat-5364.svg.
Solusi yang lebih elegan harus dimungkinkan dengan xmlstarlet atau alat serupa, yang dibuat untuk mencari dan mengedit file xml. Sayangnya saya tidak terbiasa dan tidak berhasil setelah membaca 10 menit dokumentasi. Anda tidak perlu mengganti nama grup di awal.
sumber