Bạn chưa đề cập đến hệ điều hành nào bạn đang chạy. Tôi đang sử dụng Ubuntu và tôi đã có thể sử dụng librsvg2 thành công.
Nếu bạn có quyền truy cập vào Ubuntu, đây là những gì bạn có thể làm. Đầu tiên, cài đặt librsvg2:
sudo apt-get install librsvg2-bin
Sau đó, cd
đến thư mục có SVG của bạn (đảm bảo rằng nó chỉ có SVG!) Và sử dụng một lệnh như sau:
for old in *; do
new="$(echo "$old" | sed -e 's/svg$/new.svg/')"
rsvg-convert "$old" -w 160 -h 160 -f svg -o "$new"
done
Điều này sẽ tạo ra một loạt các SVG mới với kích thước 200px x 200px và được lưu dưới dạng "tệp gốc-name.new.svg"
Tính kích thước có phần khó hiểu. Để chuyển đổi SVG sang SVG, bạn cần làm một chút toán học. Các tùy chọn "chiều cao" và "chiều rộng" trong rsvg-convert sử dụng pt, không phải px, trong các trường hợp như vậy, vì vậy hãy sử dụng 80 nếu bạn muốn 100px, 120 nếu bạn muốn 150px, v.v.
Bạn cũng có thể sử dụng rsvg-convert để đầu ra PNG. Nó tốt hơn nhiều trong việc rasterizing tệp so với ImageMagick, ít nhất là theo kinh nghiệm của tôi. Lưu ý rằng bạn cần thay đổi -f
thành png
, bạn cần thay đổi mẫu lưu đầu ra từ 's/svg$/new.svg/'
thành 's/svg$/png/'
và bạn nhập chiều rộng và chiều cao mà bạn muốn làm giá trị pixel.
for old in *; do
new="$(echo "$old" | sed -e 's/svg$/png/')"
rsvg-convert "$old" -w 200 -h 200 -f png -o "$new"
done