2017-04-13 8 views
0

4000x4000 해상도의 SVG를 렌더링하려고합니다. 내가 사용하고 명령은 다음과 같습니다Librsvg 세그멘테이션 결함 - 약 10MB의 많은 이미지

rsvg --keep-image-data -w 4000 -h 4000 big.svg try.png 

SVG 샘플은 다음과 같습니다

 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="406" height="406"> 
      <clipPath id="slot-1"> 
       <rect x="0" y="0" width="45" height="45" /> 
      </clipPath> 
      <clipPath id="slot-2"> 
       <rect x="0" y="203" width="45" height="45" /> 
      </clipPath> 
      <image clip-path="url(#slot-2)" x="1" y="170" angle="0" width="80" height="45" preserveAspectRatio="none" xlink:href="file:///var/www/myposter/web/application/../../storage/public/2017/04/0/b/f/8/4/0bf841426d859a99b0736766eca9d353ad9c9fd2_base.jpg" /> 
      <image clip-path="url(#slot-1)" x="1" y="-29" angle="0" width="76" height="45" preserveAspectRatio="none" xlink:href="file:///var/www/myposter/web/application/../../storage/public/2017/04/1/0/9/6/0/10960d9aa853b49dac548887595c829b32aa5107_base.jpg" /> 
     </svg> 

이미지는 2메가바이트 출신 - 크기의 24메가바이트

결국 결국 문제가 발생하고 "분할 오류"가 다시 발생합니다.

나는 1200 × 1200의 해상도와 동일 할 경우

...

rsvg --keep-image-data -w 1200 -h 1200 big.svg try.png 

그것은 예상 작품으로.

+0

[su]를 프로그래밍 해보십시오. –

답변

0

이 프로세스는 svg에서 참조되는 많은 고해상도 이미지가 있기 때문에 단순히 메모리 제한에 도달합니다.

해결책은 더 많은 메모리를 얻거나 더 낮은 크기의 이미지를 사용하는 것입니다.