2

나는 약 434 개의 .svg 아이콘이 있습니다. Android 앱에서 사용하기 위해 준비하고 싶습니다. Inkspace를 사용하여 수동으로 모두 내보내는 것이 좋지 않을 것이므로 ImageMagick 등을 사용하여 내보낼 수있는 방법을 찾으려고합니다. 나는 그것을위한 스크립트를 생각해 냈다 :SVG를 Android에서 사용 가능한 PNG로 자동 변환

#!/bin/sh 

echo "Deleting directories" 
rm -rf ../mdpi ../hdpi ../xhdpi ../xxhdpi ../xxxhdpi 

echo "Creating directories" 
for d in ./*; do 
    mkdir -p ../mdpi/$d ../hdpi/$d ../xhdpi/$d ../xxhdpi/$d ../xxxhdpi/$d 
done; 

for f in ./*/*.svg; do 
    filename=`dirname $f`/`basename $f .svg`.png 
    echo "Converting $f to $filename" 
    convert -background transparent $f -resize 24x24 ../mdpi/$filename # 2>/dev/null 
    convert -background transparent $f -resize 36x36 ../hdpi/$filename # 2>/dev/null 
    convert -background transparent $f -resize 48x48 ../xhdpi/$filename # 2>/dev/null 
    convert -background transparent $f -resize 72x72 ../xxhdpi/$filename # 2>/dev/null 
    convert -background transparent $f -resize 96x96 ../xxxhdpi/$filename # 2>/dev/null 
    echo 'Done' 
done; 

그것은 변환하지만 결과는 끔찍해 보입니다. ImageMagick이 다른 이미지와 마찬가지로 SVG를 처리하는 것처럼 SVG의 선은 앤티 앨리어싱에서 흐려집니다. 게다가 결과 파일 중 거의 아무 것도 사각형이 아니기 때문에 크기가 모두 잘못되었습니다.

나는 거의 이러한 조건으로 SVGs을 변환 할 수있는 방법이 필요 것

:

  • 앤티 앨리어싱
  • SVG는
  • 다시 허용 중심에 그리기와 광장 이미지 만들기 리눅스 명령 줄 (아치 리눅스) 전체 이야기를 들어

사용 (선택 사항)

  • 전적으로 검은 SVG 이미지를 - 컬러 : 나는 폴리머에서 머티리얼 디자인을위한 아이콘을 응용 프로그램에서 사용할 수 있도록 노력하고 있습니다.

  • 답변

    3

    모든 벡터 형식으로 -density 옵션에 적절한 DPI 설정을 제공해야합니다. 72보다 높게 설정하면 해상도가 훨씬 향상됩니다. 이것을 시도하십시오

    convert -density 300 -background none input.svg -resize 128x128 -gravity center -extent 128x128 output.png 
    
    +0

    명령은'im'가 아닌'convert'이어야한다는 점을 제외하면 완벽하게 작동합니다. 많은 감사합니다! – Lanbo

    +0

    죄송합니다 - 단축 된 기호 링크를 사용합니다. – rostok

    +0

    안드로이드 용 생성 아이콘이있는 github 저장소를 게시 할 수 있습니까? @LambdaDusk – ClarkXP