2012-09-26 6 views
2

다음은 300 DPI의 png 이미지 & pdf 이미지에 다음 svg 이미지가 있습니다.필터가있는 SVG 이미지를 PNG/PDF로 변환

<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ --> 
<defs> 
    <filter height="200%" width="200%" y="-50%" x="-50%" id="svg_1_blur"> 
    <feGaussianBlur stdDeviation="10" in="SourceGraphic"/> 
    </filter> 
</defs> 
<g> 
    <title>Layer 1</title> 
    <image filter="url(#svg_1_blur)" xlink:href="images/logo.png" id="svg_1" height="162.999996" width="223.999992" y="99" x="185"/> 
    <text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="24" id="svg_2" y="210" x="289" stroke-width="0" stroke="#000000" fill="#000000">sdfdsdsfsdf</text> 
</g> 
</svg> 

나는이 PHP를 사용하여 원하는 나는 이미지에 흐림 필터에 필터를 적용하고 나는 그것을 유지하려는.

또한 IE9에서 흐림 효과를 나타내지 않기 때문에 IE에서이 이미지를 보는 데 문제가 있습니다. 어떤 제안?

imagefilter($image_res, IMG_FILTER_GAUSSIAN_BLUR); 

또는

imagefilter($image_res, IMG_FILTER_SMOOTH, (int) $levelOfSmoothness); 

그러나이 더 복잡한 SVG를 들어, 당신은 SVG renderer 필요합니다

+1

gd 및/또는 imagik을 사용 하시겠습니까? –

+0

그래, 내가 imagik을 사용하려고 생각하고 있지만, DPI를 제어 할 수있을 것인가? 블러 효과가 최종 출력물에 나타날 것인가? 또한 IE에서 흐림 효과를 표시하는 방법은 무엇입니까? – Sutha

+1

dpi는 이미지 크기에 영향을주지 않습니다. 스크린 <-> 인쇄로가는 변환 요소입니다. 예 : 100x100 사진은 항상 100x100 픽셀 사진이지만 dpi를 변경하면 페이지에 표시되는 픽셀의 크기에만 영향을 미칩니다. –

답변

1

당신은 GD의 imagefilter와 같은 무언가를 생성 할 수 있습니다.

편집 :

또는, convolution matrices에 대해 충분히 알고있는 경우 : 당신이 실행 스크립트 (간부,는 popen 등)의 가능성이있는 경우

$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0)); 
imageconvolution($image, $gaussian, 16, 0); 
+0

이 접근법은 처리 할 그래픽이 래스터 이미지 인 경우에만 작동합니다 (항상 svg를 사용하는 것은 아닙니다). 그러나이 경우에는 여전히 흥미로운 솔루션입니다. – yms

0

, phantomjs는 같은 웹킷을 (사용 Chrome/Safari와 같이) 모든 주요 플랫폼에서 사용할 수 있습니다. 브라우저가 렌더링 할 것보다 더 가까이 다가 갈 수는 없습니다. 이런 식으로 뭔가를 시도 :

exec("phantomjs rasterize.js http://ariya.github.com/svg/tiger.svg tiger.png)";

당신이 phantomjs (파일 경로)에 전달하는 PARAMS을 살균 (파일 이름이나 경로에 허용되지 않는 경로와 문자를 이스케이프)하는 것을 잊지 마십시오.

관련 문제