I have a SVG 파일을 16x16 크기의 정해져 있습니다. # 39 의 프로그램을 사용할 때는 내가 ImageMagick& 변환하십시오 PNG, 그럼 내가 16x16 픽셀 PNG 변환해야 얻을 수 있는 방법을 너무 작다.
convert test.svg test.png
Png 출력물에는 데릭쉐퍼드와 픽셀입니다 크기를 지정합니다. ',' 매개변수입니다 추가로 확장할 수 있는 것 같다 '' 매개변수입니다 크기 무시됨 png it 후 변환되었습니다 png 로. 지금까지 가장 좋은 결과를 통해 '' 나는 attaboy 밀도입니다 매개변수입니다:
convert -density 1200 test.svg test.png
하지만, I& # 39 m not 달성됨, 수학 계산 없이 크기 (픽셀입니다 하고 싶어서 대체하십시오 출력물에는 밀도입니다 값입니다. 그래서 이 같은 일이 I want to do.
convert -setTheOutputSizeOfThePng 1024x1024 test.svg test.png
왜 나는 매직 매개변수입니다 사용할 수 있어?
내가 haven& t # 39 에서 좋은 결과를 얻을 수 있었지만, 이 경우, 하지만 ImageMagick 잉크스케이프 수행합니까 잘했어 it 의 Linux, Windows:
inkscape -z -e test.png -w 1024 -h 1024 test.svg
참고로, 그냥 내 잉크스케이프 버전 (켜짐이 우분투 12.04) 입니다.
Inkscape 0.48.3.1 r9886 (Mar 29 2012)
windows 7 에 있다.
Inkscape 0.48.4 r9939 (Dec 17 2012)
종료기 스브게스포르트 :
svgexport input.svg output.png 64x
svgexport input.svg output.png 1024:1024
제가 하는 것은 단순한 스브게스포르트 svg 파일을 jpg, png 내보내기의 예증의표적으로 크로스 플랫폼 명령행을 도구에서는 http://schmidt. devlib. here 에서 자세한 옵션. [설치처 고궁박물원] [2] 를 스브게스포르트 실행하십시오:
npm install svgexport -g
편집: 찾을 수 있다면 문제로 라이브러리와는 부탁이네 [제출하는] (https://github.com/shakiba/svgexport/issues/new) 를 깃허브, 감사합니다!
[2]: q = install% 20node% 20and% 20npm https://www.google.com/search?
하지만 이 산아래의 죠브 완벽할 순 없다
convert -density 1200 -resize 200x200 source.svg target.png
기본적으로 it 증대합니다 충분히 높은 DPI (단지 / 안전 교육을 사용하는 것) 를 통해 크기조정 완료되어도 충분한 품질을. 난 이 적절한 해결책을 찾으려는 시도를 했으나 이후 이 좋은분이었나요 귈이예요 했다 할 수 있는 내 현재 할 수 있습니다.
>. Note: 경로재설정 200x200! 주어진 해결안에서는 강제로
사용 되었다.
brew remove imagemagick
brew install imagemagick --with-librsvg
$ convert -version
Version: ImageMagick 6.8.9-8 Q16 x86_64 2014-12-17 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib cairo fontconfig freetype jng jpeg lcms ltdl lzma png rsvg tiff xml zlib
디스플레이 '스티그' 합니다.
잉크스케이프 doesn& 때 작동하지 않는 것 같다 '' t # 39, svg 부서입니까 px (예를 들어 cm). I got a 비워둡니다 이미지. 아마도, 그 당시 조작 실수 해결되는 문제가 너무 dpi 걸릴 수 있다.
스브게스포르트 node. js 는 일반적으로 프로그램 등 유용한 없습니다.
~$ convert -background none -size 1024x1024 infile.svg outfile.png
',' 은 희미함을 크기조정할 사용할 경우 이미지 파일 훨씬 더 크다.
~$ rsvg -w 1024 -h 1024 infile.svg outfile.png
최고 출력은 약 30% 가 종속물, 그리고 가장 적은 것이 보다 작은 변환하시겠습니까. Librsvg2 용지함 설치할 수 있습니다. 좁히어 나타나지 않을 수 있지만 맨페이지를 입력할 수 있습니다.
~$ rsvg --help
일부 도움을 얻을 수 있습니다. 간단한 좋다.
다음 단계는 후 [호세요 Alban& # 39 의 오토메이티드] (https://stackoverflow.com/a/27524633) 를 볼 수 있었는데, ImageMagick 작동합니까 그냥 그랬다고 다음 명령을 사용합니다.
convert -density 1536 -background none -resize 100x100 input.svg output-100.png
1536년 예측할 수 있는 야구장을 않했노라 고집적도 지켜보리니 [이 오토메이티드] (https://stackoverflow.com/a/41765568/2063546) 를 참조하십시오.
이미지의 조절하려면 위해 '옵션' 밀도입니다 사용해야 합니다. 표준 크기 및 매핑하므로 1:1 밀도입니다 72 내린 것으로 알고 있다. 당초 두 번 svg, png 스크램블된 확인표시를 출력물에는 72*2 = 144mbit 밀도에서 큰 설정합니다.
convert -density 144 source.svg target.png
이미지매직 에서 얻을 수 있는 것보다 더 좋은 한 경우, SVG 렌더링합니다 /dev/raw/raw1 잉크스케이프 또는 스티그 자체 내장 ImageMagick 므스티그 / XML 렌더링되었습니다. 스티그 는 함께 설치해야 하는 위임합니다 ImageMagick. 잉크스케이프 시스템에 설치된 ImageMagick, 이를 사용할 경우 자동으로. 잉크스케이프 사용하고 있는 ImageMagick 같습니다.
Magic" " 없다;; 매개변수입니다 그리웠댔지 할 것이다.
그러나 한 데 필요한 정확한 밀도입니다 렌더링합니다 출력입니다 간단하게 계산할 수 있습니다.
이 때 작은 50x50 버튼를 렌더링됨 dell. 기본값입니다 밀도입니다 96.
convert button.svg button1.png
< br>; ! [입력하십시오. 이미지 여기에 설명을] [1]
예를 들어, 우리가 원하는 출력물에는 스크램블된 500. 입력은 50 dell. 기본 밀도입니다 96 (92 이전 버전의 잉크스케이프 사용할 수도 있습니다). 계산할 수 있도록 필요한 밀도입니다 비례하여 이 비율이 치수이며 밀도를.
512/50 = X/96
X = 96*512/50 = 983
< br>;
convert -density 983 button.svg button2.png
< br>; ! [입력하십시오. 이미지 여기에 설명을] [2]
이미지매직 7 에서 다음과 같이 계산 인-라인 수행할 수 있습니다.
magick -density "%[fx:96*512/50]" button.svg button3.png
or
in_size=50
in_density=96
out_size=512
magick -density "%[fx:$in_density*$out_size/$in_size]" button.svg button3.png
예를 들어 I found 케이로스버그 SVG PNG 로 변환 (https://cairosvg.org/) 는 보다 ImageMagick. 설치 및 운영에 관한 모든 단계를 SVG 파일을 in your 디렉터리입니다.
pip3 install cairosvg
파이썬 파일과 디렉터리에 들어 있는 열 쉘로 이스버그 실행하십시오:
import os
for file in os.listdir('.'):
name = file.split('.svg')[0]
cairosvg.svg2png(url=name+'.svg',write_to=name+'.png')
또한, 기존 파일, 하지만 t # 39 don& 합니다 덮어씁니다 이스버그 새벽꺼정 이름이 같습니다. 모든 사용자 파일을 다른 디렉터리로 .png 함께 이동시키십시오 수 있습니다.
$ mv *.png [new directory]
Jpeg, png 이미지 / 검은 리브스티그 없이 받을 수 있습니다. 우리는 '에서' 'svg 파일을 설치할 수 있는' 리브스티그 변환하십시오 imagemagick.
"' sudo apt 확보하십시오. install imagemagick 리브스티그 밀도입니다 테스트리스티그 테스트리프니크 변환하십시오 - 1200년
"'
"' 이미지매직 리브스티그 브루 (brew) 설치 밀도입니다 테스트리스티그 테스트리프니크 변환하십시오 - 1200년
"'
import gzip, re, os
from ynlib.files import ReadFromFile, WriteToFile
from ynlib.system import Execute
from xml.dom.minidom import parse, parseString
def SVGToJPGInMemory(svgPath, newWidth, backgroundColor):
tempPath = os.path.join(self.rootFolder, 'data')
fileNameRoot = 'temp_' + str(image.getID())
if svgPath.lower().endswith('svgz'):
svg = gzip.open(svgPath, 'rb').read()
else:
svg = ReadFromFile(svgPath)
xmldoc = parseString(svg)
width = float(xmldoc.getElementsByTagName("svg")[0].attributes['width'].value.split('px')[0])
height = float(xmldoc.getElementsByTagName("svg")[0].attributes['height'].value.split('px')[0])
newHeight = int(newWidth / width * height)
xmldoc.getElementsByTagName("svg")[0].attributes['width'].value = '%spx' % newWidth
xmldoc.getElementsByTagName("svg")[0].attributes['height'].value = '%spx' % newHeight
WriteToFile(os.path.join(tempPath, fileNameRoot + '.svg'), xmldoc.toxml())
Execute('convert -background "%s" %s %s' % (backgroundColor, os.path.join(tempPath, fileNameRoot + '.svg'), os.path.join(tempPath, fileNameRoot + '.jpg')))
jpg = open(os.path.join(tempPath, fileNameRoot + '.jpg'), 'rb').read()
os.remove(os.path.join(tempPath, fileNameRoot + '.jpg'))
os.remove(os.path.join(tempPath, fileNameRoot + '.svg'))
return jpg
내 업무에 따라 상위 오토메이티드 @808sound 않았다. 내가 하고 싶은 크기조정할 ! [Kenney.nl ᅴ 팩과도] [1]
그래서 난 후 '대신', '익스포트를 PNG 파일을 파일 잉크스케이프 열렸습니다 갔다' 와 같은 GUI 기입란 뛰어오름 백업하도록 날 수 있는 정확한 치수입니다 설정하는 데 필요하다.
버전) 에 'unbuntu 16.04 linix': '잉크스케이프 0.91 (9월 2016년)'
(이 이미지는 에서 [Kenney.nl & # 39 의 에셋을 팩] (http://kenney.nl/assets) by the way)