Nếu bạn chưa đã cài đặt imagemagick
. Trên OSX, mà đòi hỏi rsvg
hỗ trợ cụ thể:
brew install imagemagick --with-librsvg
Bạn cũng cần inkscape, nếu không bạn có thể thấy rằng hình ảnh của bạn đi ra tất cả màu đen (trừ vùng trong suốt).
brew install homebrew/gui/inkscape
Sau đó, bạn sẽ có thể chuyển đổi như sau:
convert -density 1536 -background none -resize 100x100 input.svg output-100.png
Các 1536
là một cách giải quyết cho một cái gì đó tôi không thể tìm thấy câu trả lời tốt để. Trong các thử nghiệm của tôi, bỏ qua đối số -density
tạo hình ảnh cực kỳ nhỏ. Việc chuyển đổi hình ảnh thành -size 100x100
tại -density 1024
sẽ cung cấp cho tôi hình ảnh đầu ra là 96x96
, vì vậy những gì tôi đang thực hiện thay thế vượt quá mật độ và thay đổi kích thước xuống kích thước mục tiêu.
TL; DR sử dụng mật độ lớn hơn 1500 lần so với kích thước mục tiêu của bạn và đi từ đó.
Có nhiều cách để chạy hàng loạt lệnh đó. Đây là một trong vỏ:
for s in 10 100 200 ; do convert -density 1536 -background none -resize ${s}x${s} input.svg output-${s}.png ; done
Có điều đó sẽ hiệu quả, tôi phát hiện ra không có cách nào để thực hiện nó với Illustrator khiến tôi thất vọng vì vậy tôi phải thực hiện thủ công. – Mohammad
Điều đó khiến tôi hoảng sợ ... Sử dụng dòng lệnh ruby để gọi một chương trình dòng cmd 3 lần ... Có một cái tên cho sự điên rồ đó không? –