2012-03-11 26 views
7

Tôi muốn có thể lấy được hình ảnh mới từ một hình ảnh đã tồn tại từ dòng lệnh. Để làm điều đó, tôi bật/tắt các lớp cụ thể có phần của hình ảnh và sau đó lưu hình ảnh kết quả vào một tập tin. Tuy nhiên, trong khi tôi có thể thấy một số lệnh được liệt kê trong trợ giúp để thao tác các lớp, tôi không thấy bất kỳ lệnh nào cho phép người dùng chọn một lớp cụ thể và bật/tắt nó.Lập trình dòng lệnh Inkscape

Trả lời

6

Nếu những gì bạn muốn làm có thể đạt được bằng cách xóa một vài yếu tố không mong muốn bằng id của họ (ví dụ, layer17layer4711), bạn có thể làm theo cách này:

inkscape image.svg \ 
    --select=layer17 --verb=EditDelete \ 
    --select=layer4711 --verb=EditDelete \ 
    --verb=FileSave --verb=FileClose 

Lưu ý rằng điều này sẽ ghi đè lên image.svg với kết quả, vì vậy nếu bạn đang viết kịch bản này, hãy chắc chắn làm việc trên một bản sao chứ không phải bản gốc của bạn.

+1

Hey, mà hiện các trick. Cảm ơn bạn đã giúp đỡ! – Brian

+0

Điều này không hiệu quả đối với tôi (inkscape 0.91). Tôi đang sử dụng Windows, đây có phải là vấn đề không? –

+0

Nó có thể cần thích ứng cho các cửa sổ quá; định dạng trên là từ một mac hoặc môi trường kiểu unix tương tự (có thể vẫn tốt hơn với các mẹo của Skela trong câu trả lời khác). Nếu bạn phát hiện ra làm thế nào để thích nghi nó với Windows, hãy nói - nó sẽ giúp người khác trong tình huống của bạn. – ecmanaut

3
inkscape image.svg --export-id-only --export-id=layer17 --export-png=image.png --export-width=100 --export-height=100 

Trên một máy Mac, bạn có thể phải làm:

/Applications/Inkscape.app/Contents/Resources/bin/inkscape --without-gui --file=image.svg --export-id-only --export-id=layer17 --export-png=image.png --export-width=100 --export-height=100 
+0

Thật đáng buồn, điều này chỉ cho phép chọn một lớp duy nhất cho mỗi hình ảnh được tạo ra – hoijui

+0

bạn có thể dễ dàng xuất nó mỗi lớp mà bạn muốn tách các tệp và sau đó bạn sử dụng một cái gì đó như imageMagick để kết hợp chúng – Skela

Các vấn đề liên quan