SVG 파일 크기를 JPEG 파일 크기에 가깝게 줄일 수 있습니까?


37

웹 사이트에서 사용중인 이미지가 있습니다. SVG를 사용하여 크기에 관계없이 선명하게 보이도록하고 싶습니다.

  • 이 드롭 박스 에는 SVG 파일과 원본 Illustrator 파일 포함되어 있습니다.
  • 이것은 JPEG 내보내기입니다.

    JPEG 내보내기

SVG는 JPG보다 파일 크기가 훨씬 큽니다. SVG가 유사한 파일 크기를 갖도록 SVG를 최적화 할 수 있습니까? 도움이된다면 품질의 일부를 잃을 수도 있습니다. 이 SVG 최적화 프로그램을 시도했지만 큰 차이는 없었습니다.

일러스트 레이터 파일을 JPG로 저장하고 결과를 추적하여 SVG로 저장하면 파일 크기가 훨씬 작아 지지만 품질이 약간 떨어집니다. 이것은 아마도 원본의 레이어가 큰 크기를 일으키는 것으로 생각합니까? 내가 작업하는 이미지가 너무 복잡하여 SVG에 적합하지 않습니까?


16
귀하의 질문과 관련이 없지만 이와 같은 이미지에는 JPG를 사용해서는 안됩니다. 대신 PNG를 사용하십시오. 크기가 비슷할 것이므로 품질이 떨어지지 않습니다.
svick

비교는 이미지의 실제 크기에 따라 달라집니다. JPEG 크기를 조정하면 크기가 많이 증가합니다. SVG의 크기를 조정해도 효과가 없습니다. 매우 작은 아이콘은 JPEG처럼 작지만 그래픽은 작게 부르지 않을 것입니다.
Paul Draper

Inkscape 사용자가 아니고 직접 SVG를 골퍼하는 것에 대해 확신이 없다면 내 답변에서 링크 된 온라인 도구를 좋아할 입니다.
Dom

1
svick의 의견에 덧붙여 말하면, PNG가 더 좋은 이미지 "이것과 같은"은 투명한 가장자리가 있거나 날카로운 색이나 흰색의 선명한 부분이있는 것입니다. '사진'이 아닌 '그래픽'(예 : 로고, 아이콘 등) 인 경우 PNG가 더 좋습니다. JPG는 사진 (또는 사실적인 이미지)에 더 좋습니다.
user56reinstatemonica8

답변:


40

SVG에는 컨트롤러의 오른쪽 하단에 음영을위한 픽셀 그래픽이 내장되어 있습니다. 파일 크기의 약 ⅔를 담당합니다. 이를 제거하면 SVG 파일이 JPEG와 동일합니다. 그래디언트를 사용하면 비슷한 효과를 얻을 수 있습니다.

SVG 파일 크기를 줄이는 다른 기술은 다음과 같습니다.

  • 모든 메타 데이터 및 유사 항목을 제거하십시오. Inkscape에는 이를 위해 일반 SVG로 저장 이 있습니다. 다른 프로그램에도 비슷한 것이 있다고 생각합니다.
  • 모양에 거의 추가되지 않는 노드를 제거하십시오. 예를 들어 컨트롤러 모양에 가짜 노드가 있습니다.

이것은 아마도 원본의 레이어가 큰 크기를 일으키는 것으로 생각합니까?

터무니없이 많은 레이어를 사용하지 않는 한 (각 객체에 대해 하나의 레이어를 생각할 경우) 레이어는 파일 크기에 관련이 없어야하며 그 후에도 분수에 불과합니다.

내가 작업하는 이미지가 너무 복잡하여 SVG에 적합하지 않습니까?

처음부터 이미지를 합리적으로 만들 수 있다면 ¹ SVG 형식에 비해 너무 복잡해서는 안됩니다. 파일 크기가 폭발하는 마법의 복잡성 임계 값과 같은 것은 없습니다 (아마도 합리적인 형식 일 경우). 물론 해상도를 충분히 조잡하게 선택한 경우 모든 SVG를 파일 크기가 작은 JPEG로 내보낼 수 있습니다. 그러나 반드시 SVG를 사용해서는 안된다는 의미는 아닙니다.


¹ 특히 추적 및 유사하지 않습니다. 극단적 인 예를 들기 위해 : SVG 프리미티브를 사용하여 사진의 모든 픽셀을 정확하게 재현하려면 (예 : SVG에 픽셀 그래픽을 포함하지 않음) SVG 형식으로 효율적으로 표현하기에는 결과가 너무 복잡하다고 생각할 수 있습니다 . 그러나 그것은 상식적인 상식입니다.


80

Wrzlprmft가 이미 지적했듯이 SVG 파일 크기의 50 % 이상은 컨트롤러에 상당히 미묘한 음영 효과를 만드는 데 사용되는 포함 된 PNG 비트 맵 이미지에 의해 사용됩니다. 해당 이미지를 제거하고 간단한 방사형 그래디언트로 대체하면 SVG를 약 10kb로 줄일 수 있습니다.

        기발한         간단한 방사형 그래디언트
왼쪽에 멋진 비트 맵 음영이있는 원본 이미지, 오른쪽에 간단한 방사형 그래디언트가있는 편집 된 버전.

당신이 그것을하는 동안, 당신은 또한 경로를 단순화해야 할 것이 있는지 확인해야합니다. 많이 찾지는 못했지만 컨트롤러 개요에는 눈에 띄는 차이없이 병합 할 수있는 인접한 노드 (상단 및 하단 중간 근처)가 있습니다.

그것은 바로 50 % 쉽게 절약 할 수 있지만 아직 멈추지 마십시오. SVG 형식 에 대해 조금이라도 알고 있다면 그보다 훨씬 더 잘 할 수 있습니다 .

먼저 Inkscape에서 "Vacuum Defs"를 실행하여 쓸모없는 정의를 제거한 다음 이미지를 "plain SVG"로 저장하십시오. 이제 텍스트 편집기에서 열어서 제거 할 수있는 것을 살펴볼 차례입니다. 이상적으로 통합 SVG 미리보기가있는 편집기를 사용해야하므로 편집 한 이미지가 이미지에 어떤 영향을 미치는지 신속하게 확인할 수 있습니다. 나는 그것을 위해 emacs 를 사용 하지만 비슷한 기능가진 다른 편집기가 있습니다.

어쨌든 텍스트 편집기에서 SVG 파일을 연 상태에서 간단하게 시작하겠습니다!

  • 맨 위에는 큰 쓸모가 없습니다 <!-- comment -->. 그냥 삭제하십시오.

  • Illustrator에서 SVG를 직접 편집하는 경우 쓸모없는 <!DOCTYPE ... >선이 있습니다. 역시 삭제하십시오.

  • 잉크 스케이프는 쓸모없는 RDF 메타 데이터 블록을 이미지에 집어 넣어야합니다. <metadata ...>닫는 것을 포함하여 모든 것을 포함하여 태그를 찾아 삭제하십시오 </metadata>.

  • 또한 파일을 "일반 SVG"로 저장하더라도 Inkscape는 여전히 많은 사용자 정의 속성으로 파일을 버립니다. 로 시작 inkscape:하거나 sodipodi:삭제하는 모든 속성을 찾아 삭제하십시오.

  • 메타 데이터 및 Inkscape 특정 속성이 없어지면 <svg>태그 에서 사용되지 않은 모든 XML 네임 스페이스 속성을 제거 할 수 있습니다 . 적어도 안전하게 제거 할 수 있어야한다 xmlns:rdf, xmlns:dc, xmlns:cc, xmlns:inkscapexmlns:sodipodi. 중복 xmlns:svg속성 이 있으면 제거하십시오. 이 시점에서 남겨둔 네임 스페이스 속성은 다음과 같습니다.

    xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink"
    
  • <svg>태그에는 enable-backgroundand 와 같이 안전하게 제거 할 수있는 다른 쓸모없는 속성이 있습니다 xml:space="preserve". (사람들은 일러스트 레이터 SVG 수출 삽입하고, 잉크 스케이프 그들이 쓸모 실현하는 스마트 충분하지 않습니다.)이 viewBox단지의 값을 반복하기 때문에 속성도 안전하게,이 이미지에서 제거 할 수 있습니다 x, y, widthheight특성을.

  • 태그 에서 encodingstandalone속성을 안전하게 제거 할 수도 있습니다 <?xml ... ?>.

  • 이제 이미지 데이터에 대해 알아 보겠습니다. 어떤 이유로 든, 잉크 스케이프는 id참조되지 않은 경우에도 모든 요소에 속성을 할당해야 합니다. 모든 id값이 파일에 다른 곳에서 반복되지 않습니다 속성은 (그것을 검색!)를 제거하는 것이 안전합니다. 기본적으로 유지해야 할 유일한 ID는 그라디언트 및 <defs>섹션 내에서 찾은 다른 객체 (예 : 경로)의 ID 입니다.

  • 또한 Inkscape는와 같은 긴 ID를 생성하는 것을 좋아합니다 linearGradient4277. lg1대신 짧은 것으로 삭제할 수없는 ID를 약어로 사용하십시오.

  • <defs>서로 바로 뒤에 여러 섹션 이 있습니다 . 그것들을 병합하면 몇 바이트가 절약됩니다 (일반적으로 문서 구조가 단순화됩니다).

  • <g>파일 끝에 여러 개의 빈 그룹 ( 요소)이 있습니다. 그냥 제거하십시오. 정확히 동일한 transform속성을 가진 연속 된 여러 그룹이있을 수도 있습니다 (또는 전혀 없음). 그것들을 병합하는 것도 안전합니다.

  • 이상한 이유로 Inkscape는 요소에 d대한 중복 베 지어 경로 ( 속성)를 저장 <circle>합니다. 그것은 아무 이유없이 공간을 차지하므로 삭제하십시오. ( 요소 의 d속성은 그대로 둡니다 <path>. 실제로는 무언가에 사용됩니다.)

  • Inkscape는 또한 style보다 구체적인 속성 (예 : fill="#4888fa"보다 자세한 속성으로 다시 쓰기)이 더 짧은 속성에 CSS를 사용하는 것을 좋아합니다 style="fill:#4888fa". 이러한 스타일을 개별 속성으로 나누고 기본 설정을 쓸데없이 반복하는 스타일을 제거하여 위의 대부분의 변경 사항보다 SVG 형식에 약간 더 익숙해지면 몇 바이트를 절약 할 수 있습니다.

  • 또한 <use ... >요소 가 있으면 링크하는 실제 요소로 바꾸어 몇 바이트를 절약 할 수 있습니다. (물론 링크 된 요소가 한 번만 사용되는 경우 공간을 절약 할 수 있습니다.) 또한 Inkscape는 원형 그라디언트를 간접적으로 정의하여 먼저 스톱을 정의한 <linearGradient>다음 <radialGradient>; 방사형 그래디언트 내부에서 정지 점을 직접 이동하고 사용하지 않는 선형 그래디언트를 제거하여 단순화 할 수 있습니다. 보너스로이 작업을 수행하여 모든 xlink:href속성을 제거 xmlns:xlink하면 <svg>태그 에서 속성을 삭제할 수 있습니다 .

  • 마지막으로 여분의 모든 바이트를 짜내려면 너무 많은 소수점이있는 숫자 값을 찾아 더 합리적인 것으로 반올림하십시오. 실시간 미리보기가 실제로 도움이되는 곳입니다. 표시하기 전에 값을 얼마나 반올림 할 수 있는지 확인할 수 있기 때문입니다. 모든 숫자를 신중하게 테스트하여 얼마나 반올림 할 수 있는지 확인하고 싶지 않더라도 최소한 1.0000859픽셀 값 을 그냥 반올림하는 것과 같이 거꾸로 매달려있는 과일을 선택할 수 있습니다 1.

  • 마지막으로 파일의 들여 쓰기와 공백을 정리하십시오. 바이트 수를 절대적으로 최소화하려면 모든 것을 한 줄에 넣어야합니다 (또는 공백이 필요한 속성 앞에 줄 바꿈 만 넣으십시오).하지만 실제로 읽기가 어렵습니다. 그럼에도 불구하고, 단순하고 보수적 인 들여 쓰기로 가독성과 컴팩트 함 사이의 적절한 균형을 잡을 수 있습니다.

어쨌든, 여기 SVG 이미지를 수동으로 편집 한 내용은 다음과 같습니다.

<?xml version="1.0"?>
<svg
  xmlns="http://www.w3.org/2000/svg"
  version="1.1"
  x="0" y="0" width="124" height="52">
<g transform="translate(1,-27.5)">
  <linearGradient id="lg1"
    x1="70.1063" y1="13.4122"
    x2="66.1994" y2="-26.4368"
    gradientUnits="userSpaceOnUse"
    gradientTransform="matrix(0.9997,-0.0263,0.0263,0.9997,-7.4,61.3)">
    <stop offset="0" stop-color="#154BBF" />
    <stop offset="1" stop-color="#6E8BFF" />
  </linearGradient>
  <path d="M 119.198,75.836 C 115.115,80.541 7.902,78.843 3.585,74.366 -0.734,69.888 -1.322,46.938 2.76,42.233 6.842,37.53 113.821,30.047 118.137,34.524 c 4.319,4.477 5.143,36.609 1.061,41.312 z" id="path3298" fill="url(#lg1)" />
  <linearGradient id="lg2"
    x1="70.4391" y1="13.5887"
    x2="70.4391" y2="-25.3265"
    gradientUnits="userSpaceOnUse"
    gradientTransform="matrix(0.9997,-0.0263,0.0263,0.9997,-7.4,61.3)">
    <stop offset="0" stop-color="#4166FA" />
    <stop offset="1" stop-color="#87A4FF" />
  </linearGradient>
  <path d="M 119.2,71.843 C 115.247,76.118 11.615,74.749 7.447,70.692 3.281,66.635 2.747,45.804 6.7,41.528 c 3.953,-4.277 107.372,-11.239 111.539,-7.183 4.167,4.057 4.915,33.222 0.961,37.498 z" id="path3305" fill="url(#lg2)" />
  <path stroke="#fff" stroke-width="5" d="m 103.734,64.225 0,0 c -0.921,-0.271 -1.661,-0.724 -2.2,-1.342 -0.917,-1.051 -0.957,-2.455 -0.88,-3.576 -1.831,-0.373 -3.866,-0.886 -7.099,-1.84 -3.233,-0.954 -5.221,-1.627 -6.961,-2.308 -0.544,0.983 -1.34,2.14 -2.679,2.525 -0.789,0.227 -1.656,0.204 -2.577,-0.068 -1.415,-0.417 -2.876,-1.431 -3.723,-2.583 -1.731,-2.354 -1.283,-6.55 -0.601,-9.655 0.964,-4.399 3.692,-11.662 7.252,-13.641 3.374,-1.877 12.426,0.468 16.37,1.6315 3.944,1.1635 12.873,4.1185 14.692,7.5355 1.914,3.596 0.262,11.176 -1.317,15.393 -1.113,2.978 -3.016,6.746 -5.746,7.782 -1.338,0.505 -3.117,0.564 -4.531,0.146 z" />
  <path fill="#4888fa" d="m 103.734,64.225 0,0 c -0.921,-0.271 -1.661,-0.724 -2.2,-1.342 -0.917,-1.051 -0.957,-2.455 -0.88,-3.576 -1.831,-0.373 -3.866,-0.886 -7.099,-1.84 -3.233,-0.954 -5.221,-1.627 -6.961,-2.308 -0.544,0.983 -1.34,2.14 -2.679,2.525 -0.789,0.227 -1.656,0.204 -2.577,-0.068 -1.415,-0.417 -2.876,-1.431 -3.723,-2.583 -1.731,-2.354 -1.283,-6.55 -0.601,-9.655 0.964,-4.399 3.692,-11.662 7.252,-13.641 3.374,-1.877 12.426,0.468 16.37,1.6315 3.944,1.1635 12.873,4.1185 14.692,7.5355 1.914,3.596 0.262,11.176 -1.317,15.393 -1.113,2.978 -3.016,6.746 -5.746,7.782 -1.338,0.505 -3.117,0.564 -4.531,0.146 z" />
  <path fill="#87b5ff" d="m 114.774,40.292 c -1.17,-2.151 -7.571,-4.939 -14.293,-6.921 V 33.37 c -0.023,-0.007 -0.047,-0.014 -0.07,-0.021 -0.023,-0.007 -0.047,-0.015 -0.071,-0.02 l 0,0 c -6.723,-1.985 -13.612,-3.12 -15.761,-1.949 -4.296,2.337 -9.198,17.315 -6.265,21.228 0.907,1.209 3.014,2.449 4.466,2.043 1.452,-0.404 2.121,-3.4 2.652,-3.174 2.518,1.077 5.601,2.117 8.744,3 3.119,0.966 6.272,1.765 8.972,2.229 0.569,0.097 -0.498,2.975 0.502,4.104 1.001,1.128 3.443,1.232 4.861,0.709 4.586,-1.693 8.602,-16.933 6.263,-21.227 z" />
  <path fill="#2f67c9" d="m 90.818,42.604 c -0.097,-0.194 -0.901,-0.575 -1.999,-1.006 0.317,-1.135 0.497,-2.007 0.401,-2.2 -0.319,-0.641 -3.681,-1.766 -4.323,-1.447 -0.192,0.096 -0.574,0.9 -1.004,1.998 -1.135,-0.315 -2.006,-0.497 -2.201,-0.401 -0.64,0.319 -1.766,3.681 -1.446,4.322 0.096,0.193 0.901,0.575 1.997,1.006 -0.316,1.134 -0.496,2.007 -0.4,2.199 0.32,0.64 3.682,1.767 4.323,1.447 0.193,-0.095 0.575,-0.901 1.005,-1.997 1.135,0.314 2.008,0.496 2.199,0.401 0.642,-0.32 1.767,-3.682 1.448,-4.322 z" />
  <path fill="#4888fa" d="m 100.282,33.311 c -0.024,-0.007 -0.046,-0.013 -0.069,-0.02 -0.023,-0.006 -0.046,-0.013 -0.07,-0.02 l 0,0 c -2.455,-0.725 -4.932,-1.334 -7.181,-1.755 -0.765,2.073 -1.164,4.497 -0.789,5.91 0.627,2.363 9.764,5.059 11.574,3.414 1.096,-0.996 2.091,-3.297 2.566,-5.483 -1.876,-0.731 -3.937,-1.428 -6.031,-2.046 l 0,0 z" />
  <circle fill="#639bff" r="3.427" cy="46.947" cx="101.382" />
  <circle fill="#4888fa" r="2.868" cy="45.940" cx="109.28" />
  <circle fill="#2f67c9" r="2.868" cy="52.538" cx="106.287" />
  <radialGradient id="rg3"
    cx="90.874" cy="39.29"
    fx="90.874" fy="39.29"
    r="19.89"
    gradientUnits="userSpaceOnUse"
    gradientTransform="matrix(1.7028,-0.3387,0.276,1.3872,-70.22,16.58)">
    <stop stop-color="#1166a8" stop-opacity="0" offset="0" />
    <stop stop-color="#1166a8" stop-opacity="0.02" offset="0.45" />
    <stop stop-color="#1166a8" stop-opacity="0.63" offset="1" />
  </radialGradient>
  <path d="m 103.734,64.225 0,0 c -0.921,-0.271 -1.661,-0.724 -2.2,-1.342 -0.917,-1.051 -0.957,-2.455 -0.88,-3.576 -1.831,-0.373 -3.866,-0.886 -5.973,-1.508 -0.375,-0.11 -0.75,-0.223 -1.124,-0.338 -0.378,-0.107 -0.753,-0.216 -1.128,-0.326 -2.107,-0.622 -4.095,-1.295 -5.835,-1.976 -0.544,0.983 -1.34,2.14 -2.679,2.525 -0.789,0.227 -1.656,0.204 -2.577,-0.068 -1.415,-0.417 -2.876,-1.431 -3.723,-2.583 -1.731,-2.354 -1.283,-6.55 -0.601,-9.655 0.964,-4.399 3.692,-11.662 7.252,-13.641 3.374,-1.877 12.426,0.468 16.245,1.591 l 0.274,0.081 c 3.795,1.123 12.724,4.078 14.543,7.495 1.914,3.596 0.262,11.176 -1.317,15.393 -1.113,2.978 -3.016,6.746 -5.746,7.782 -1.338,0.505 -3.117,0.564 -4.531,0.146 z" fill="url(#rg3)" />
</g></svg>

이 SVG 이미지는 위의 두 번째 예제 이미지와 거의 다르지 않지만 , JPEG 이미지보다 훨씬 적은 5189 바이트 만 차지합니다 . 나는 그것이 아직 더 최적화 될 수 있다고 확신하지만 이것은 실제로 몇 분 안에 연습으로 할 수있는 일의 예일뿐입니다. ( 실제로 SVG 코드를 편집하는 것보다이 답변을 입력하는 데 훨씬 오래 걸렸 습니다.)

마지막으로이 SVG 코드를 gzip으로 압축하면 JPEG 버전 크기의 1/4에 불과한 1846 바이트 (!)로 줄어 듭니다.


4
멋지게 골프를 쳤다 .
Wrzlprmft

7
줄 바꿈을 제거하고 50 바이트를 더 절약 할 수 있습니다 :)
Yorik

15
이 멋진 답변을 찬성하기 위해이 사이트에 가입해야했습니다! 잘 했어!
Karl-Johan Sjögren

Ilmari, 답변에 링크 된 웹 앱을 확인하고 직접 수행하는 모든 작업을 확인할 수 있는지 궁금합니다. 놀라운 축소로 큰 SVG에서 실행했지만 사전에 다른 서비스를 통해 SVG를 실행하면 추가 2kb를 절약 할 수있었습니다. SVG 코드를 검사 할 때 여전히 Adobe에 대한 링크가 포함 된 일부 메타 데이터가 표시되며 필요한지 잘 모르겠습니다. 당신의 SVG 지혜는 대단히 감사합니다.
Dom

30

" Scour "확장명을 언급 한 사람이 아무도 없습니다 . 이 버전은 Inkscape (v0.47 기준)와 함께 제공되며 Ilmari Karonen이 언급 한 많은 최적화 작업을 수행합니다.


14
+1 대단합니다! 솔직히, 나는이 도구가 존재한다는 것을 알지 못했습니다. 올바른 옵션을 사용하면 명령 줄 버전이 손으로 최적화 된 코드를 거의 200 바이트 뛰어 넘으며 손으로 최적화 된 코드 에서 실행하면 4571 바이트 (!)로 줄어 듭니다.
Ilmari Karonen

5

압축 된 SVG (SVGZ)로 변환하여 웹 페이지에 image.svgz를 넣을 수 있습니다.

gzip image.svg
mv image.svg.gz image.svgz

또는 Adobe Illustrator에서 간단히 "SVG 압축"으로 저장하면 image.svgz 파일이 작성됩니다.

테스트 이미지의 경우 여전히 JPG보다 큽니다.

image.jpg:   7268 bytes
image.svg:  22385 bytes
image.svgz: 14614 bytes

6
압축 된 SVG는 최근 IE의 대부분에서 슬프게도 작동하지 않습니다. 이 아이디어는 도움이되지만 IE는 훨씬 덜 실용적입니다. 어쨌든 당신의 잘못이 아니기 때문에 +1 IE $ ucks. :)
Dom

5
@Dom, IE와 PNG에 대한 경험은 3-5 년이 아니라 3-5 년을 의미합니다.
Glenn Randers-Pehrson

3
Bashing IE는 나를 즐겁게 해주지 않습니다! :) 우리가 GDSE에 당신의 경험 수준의 누군가를 끌어들일 수 있다는 것은 정말 멋진 일입니다. 나는 당신이 그것을 좋아하기를 바랍니다. 아직 아무도 말하지 않았다면, 환영합니다!
Dom

2
IE에서 테스트하기 위해 modern.ie/en-us
Scott Carlson

4
웹 사이트에서 제공하는 경우 HTTP 압축을 요청하는 클라이언트에게는 일반적으로 gzip을 사용하는 경우 무시할만한 이점이 있습니다.
Bob

3

최근 https://petercollingridge.appspot.com/svg-editor ( 소스 코드 )에서 SVG 파일을 최적화하는 데 도움이 되는 도구를 찾았습니다 . 이 경우 파일 크기를 3.7kB로 낮추고 JPG 크기의 절반을 약간 넘는 수동 조정만으로도 좋은 결과를 얻을 수 있습니다.

이 도구를 사용하여 SVG 파일을 최적화하면 파일을 수동으로 골프를 치는 것보다 훨씬 적은 시간이 필요합니다.


Graphic Design SE에 오신 것을 환영합니다. 질문자가이 도구를 언급했다는 점에 유의하십시오. 이것이이 답변을 무효화하지는 않지만 원근법으로 넣을 수 있습니다. 또한 수동 조정의
Wrzlprmft

이것은 질문에서 언급 한 것과 완전히 같은 도구는 아니지만 동일한 저자가 만든 동일한 도메인에 있습니다. 저자의 링크에는이 도구에 대한 링크가 있지만 답변을 게시하기 전까지는 알지 못했습니다. 여전히 유용하므로 삭제하지 않았습니다. 에 의해 수동 조정 , 나는 더 크기를 개선하기 위해 소수점 출력이 정확하고 감소하기 위해 (경로를 결합, 제거 IDS) 여러 상자를 선택 해제 것을 의미한다.
user60561

SVGOMG (Dom의 답변)와 마찬가지로 여기에서도 가장 큰 절감 효과는 xlink를 비활성화하여 부작용으로 포함 된 이미지를 완전히 삭제하는 것으로 보입니다. 분명히 이미지를 그라디언트로 바꾸는 것은 실제로 자동화 된 도구가 기대할 수있는 것이 아닙니다.
Ilmari Karonen

3

SVGOMG! SVG 최적화를위한 멋진 웹앱입니다

이 앱의 제작자에 따르면 SVGOMG는 SVGO 의 " M issing G UI"입니다.

제공된 이미지에서 실행하면 이미지 가 압축 된 직후에 3.42kb바로 표시 1.4kb됩니다.

SVGOMG 스크린 샷


1
렌더링 된 미리보기를 보면 대부분의 절감 효과는 포함 된 이미지를 완전히 삭제한다는 사실에서 비롯된 것 같습니다. 분명히 비트 맵을 그라디언트로 교체한다고해서 소프트웨어 툴이 자동으로 수행 할 수있는 것은 아닙니다.
Ilmari Karonen

1
나는 더 이상 고정 단지 그라데이션과 최적화되지 않은 버전이없는,하지만 난 수동 마지막으로 비트 맵을 대체하기 위해 원래의 SVG를 편집하는 경우 <radialGradient><path>내 손으로 최적화 된 코드에서, SVGOMG는 아래로 결과 5.8 kB의 이미지를 최적화 4.02 kB (4.11 kB는 예리한 상태)이며 꽤 철저한 작업을 수행하는 것 같습니다. 나는 명백한 기회가 빠진 것을 보지 못했다. (조금 더 연주하면 때때로 동일한 그룹과 연속 그룹을 병합하는 데 실패한다는 것을 알았습니다. Inkscape는 때때로 페이지를 그림에 맞게 조정할 때 생성하는 것처럼 보입니다.)
Ilmari Karonen

@IlmariKaronen Dropbox의 원본 22kb SVG에서 실행하여 디스크를 3.42kb로 가져와 주셔서 감사합니다. 내 생각이 왜 더 작습니까? (모든 옵션을 활성화했습니다). 이 앱은 대부분의 경우 가장 쉽고 빠른 옵션 일 수 있습니다. 나는 응용 프로그램과 제휴가 없습니다, 그것은 굉장합니다!
Dom

1
컨트롤러를 자세히 살펴보십시오. 원본 SVG를 최적화 할 때 "래스터 이미지 제거"를 선택하면 컨트롤러의 음영이 완전히 사라집니다 (실제로 반투명 PNG가 포함되어 있기 때문). 답변의 스크린 샷을 원본 JPEG와 비교하면 실제로 볼 수 있습니다. 내가 얻은 4.02 kB 버전은 제거 된 음영을 대체하기 위해 추가 경로와 그라디언트를 포함하기 때문에 더 큽니다.
Ilmari Karonen

@IlmariKaronen 나는 그 차이를 볼 것이라고 생각합니다. 너무 작아서 눈이 트릭을하고 있는지 확실하지 않습니다. 좋은 지적입니다. 지금까지 SVG에서 단색으로 만 작업 했으므로 앞으로도 염두에 두어야합니다. 감사합니다.
Dom
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.