Inkscape에서 문서와 내용의 크기를 동시에 조정하십시오


25

나는 매우 기본적으로 보일 수있는 일을하기 위해 고심하고 있습니다.

Inkscape에서 문서와 내용 (예 : 그림)의 크기를 동시에 조정할 수 있습니까?

약간의 맥락 : 실제 도면의 크기를 명시 적으로 지정하지 않고도 The Noun Project (대개 100x100px 문서) 의 상당히 많은 SVG 문서의 크기를 조정하고 싶습니다 .

NB : 커맨드 라인 솔루션이 있다면 이것으로도 작업 할 수 있습니다!


최종 목표는 확실하지 않지만 AFAIK, 문서 영역은 문서 영역 만 인쇄하는 옵션이있는 인쇄와는 별도로 임의적입니다. 그러나 객체 영역 만 인쇄 할 수 있으므로 장애물을 피할 수 있습니다.
DA01

@ DA01 글쎄, 나는 Bitmap (내가하고있는 일)으로 내보낼 때 문서가 매우 도움이된다고 생각합니다.
julien_c

그런데 모서리를 드래그하지 않고 크기를 명시 적으로 지정하는 객체의 크기를 조정하는 방법이 있습니까? 그것은 내가 쫓아 온 것일 수도있다 :)
julien_c

1
심지어 그것은 임의의 옵션입니다. 내보내기 '영역'처럼 포함 상자를 쉽게 그릴 수 있습니다. 사실, 내가 보통 그것을 선호하는 방법입니다. 크기 조정과 관련하여 객체를 선택한 다음 a) 상단의 상태 표시 줄을 사용하여 크기 변경을 입력하거나 b) OBJECT> TRANSFORM으로 이동하고 Transform 팔레트에 값을 입력하십시오
DA01

@julien_c : 나는 여기에 포인트가 객체가 직선 벡터 아트가 있다고 생각하고 더 사이즈가없는 그 자체를 래스터 장치 (또는 파일)을 사용하면 출력 할 때까지. 그들의 크기 (인치, 픽셀, 큐빗)는 사실상 관련이 없습니다.
horatio

답변:


24

어떤 OS를 사용하고 있는지 언급하지 않았습니다. Ubuntu를 사용하고 있으며 librsvg2를 성공적으로 사용할 수있었습니다.

Ubuntu에 액세스 할 수있는 경우 다음을 수행 할 수 있습니다. 먼저 librsvg2를 설치하십시오 :

sudo apt-get install librsvg2-bin

그런 다음 cdSVG가있는 디렉토리 (SVG 만 있는지 확인하십시오!)에 다음과 같은 명령을 사용하십시오.

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

200x200px 크기의 새로운 SVG 배치가 생성되고 "original-file-name.new.svg"로 저장됩니다.

치수 계산이 다소 혼동됩니다. SVG를 SVG로 변환하려면 약간의 수학을해야합니다. rsvg-convert의 "height"및 "width"옵션은 px가 아닌 pt를 사용하므로 100px를 원하면 80, 150px를 원하면 120을 사용하십시오.

rsvg-convert를 사용하여 PNG를 출력 할 수도 있습니다. 적어도 내 경험으로는 ImageMagick보다 파일을 래스터 화하는 것이 훨씬 좋습니다. 변경해야하는 사항 -f에는 png, 당신은에서 패턴 저장 출력을 변경할 필요 's/svg$/new.svg/''s/svg$/png/', 당신은 당신이 픽셀 값으로 원하는 너비와 높이를 입력합니다.

for old in *; do
    new="$(echo "$old" | sed -e 's/svg$/png/')"
    rsvg-convert "$old" -w 200 -h 200 -f png -o "$new"
done

그건 그렇고, 배치 모드에서 많은 수의 SVG에 대해이 작업을 수행해야한다고 가정합니다. 그렇지 않다면, 당신은 여전히 사용할 수 있습니다 rsvg-convert: 등을 rsvg-convert noun_project_1576.svg -w 320 -h 160 -f svg -o noun_project_1576-skewed.svg"noun_project_1576"라는 이름의 소스 파일을 할과 200 픽셀에서 400 픽셀로 그것을 왜곡과 "noun_project_1576 - 왜곡"이름을 바꿉니다.
Ananda Mahto

@julien_c, 방금 다음 :이 제안을 시도하고 그 결과를 얻었습니까?
Ananda Mahto

터미널에 코드를 복사하여 붙여 넣었지만 sed를 반환합니다. -e expression # 1, char 14 : unterminted '
s'command

나는 "로 '로 변경하고 지금은 오류 파일에 저장 얻고있다 : 에코 svgfile.svg를 | 나오지 -e'의 / SVG $ / 2.svg '
raphie

훌륭합니다- librsvg흐르는 텍스트 버그가 수정 될 때 더 나아질 것 입니다 ...
Joce

7

현재 잉크 스케이프에는 기본 방법이 없습니다. 유일한 방법은 내용과 문서의 크기를 개별적으로 조정하는 것입니다.


2

여기에 언급 된 것처럼 몇 가지 방법이 있지만 실제로 잘 작동하는 한 가지 방법은을 사용하는 것 viewBox입니다. SVG 태그의 내용을 다음과 같이 간단히 수정하면됩니다.

<svg
 width="1280"
 height="800"
 viewBox="0 0 1280 800">
    <!-- More markup... --!>
</svg>

어떤 viewBox일은이 문서에 대한 내부 좌표계를 정의합니다. 그런 다음 필요에 따라 widthheight속성을 수정하여 문서의 크기를 쉽게 조정할 수 있습니다 .

그러나 몇 가지 단점이 있습니다. 우선, 마크 업 페이지에 SVG 문서를 직접 포함시키는 경우 특히 작동하는 특정 컨텍스트 만 있습니다. <img>이 태그를 사용하면 예기치 않은 결과가 발생할 수 있습니다. 최선의 방법을 찾으려면 자신의 조사를 수행해야합니다.


2
이것은 저에게 효과적이지 않으며 왜 그런지 이해하지 못합니다. 너비와 높이를 편집하지만 viewBox를 그대로두면 Chrome이 원시 svg 파일을 렌더링 할 때 내용의 일부만 표시합니다. Inkscape가 렌더링 할 때 전체 내용을 보여 주지만 Chrome과 동일한 작은 부분 (왼쪽 상단) 인 페이지보다 훨씬 큽니다. 따라서 모두 : 내용은보기 상자 좌표에 따라 조정되지 않습니다. 내 SVG에는 여러 개의 자식 svg 요소가 있지만 모두보기 상자 좌표를 기반으로 변환됩니다.
CPBL

Inkscape 0.92.3, Firefox 66 및 Chromium 73에서 저를 위해 일했습니다.
Socowi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.