2010-06-25 35 views
2

需要轉換.svg文件並以.svg或jpeg格式保存em。 ImageMagick的問題在於它將轉換後的文件保存在白色背景上,並且我透明地致命地需要它。通過PHP幫助轉換.SVG圖像 - Image Magick類似

任何建議與其他工具或清除php?會真的很感激它。

+3

JPEG不支持透明度。 – Artefacto 2010-06-25 09:32:30

+0

您實際需要對SVG文件進行什麼樣的轉換? – 2010-06-25 10:22:23

回答

4

右ImageMagick的命令應該是:

convert -background none somefile.svg somefile.png 

您應該使用PNG或GIF的文件格式,因爲JPEG不支持透明度。

在PHP中使用它:

<?php 
$svg_file_name = "somefile.svg"; 
$png_file_name = "somefile.png; 
system("convert -background none $svg_file_name $png_file_name"); 
?> 
+0

我需要imagemagick的一些php工具 - 而不是外部命令 – Monky 2010-06-25 09:57:01

+2

你說「任何建議與其他工具或清除PHP」,所以它與其他工具!但是你可以在PHP中調用它,查看我更新的答案。 – jigfox 2010-06-25 10:10:58

0

我懷疑你可以從PHP內很容易地轉換SVG文件。 SVG文件基本上都是XML文件,並且標準是公開的,所以任何人都可以製作一個轉換器...

我喜歡使用外部工具,它比使用腳本語言處理更容易,安全當腳本這麼想的筆者真正知道如何找出命令行開關的應用,以及JPEG文件不支持透明度:)

convert -background none somefile.svg somefile.png爲延斯說...

0

您無法透過JPEG進行透明度處理,但以下是如何將SVG另存爲透明背景的PNG ...

$image = new Imagick(); 
$image->setBackgroundColor(new ImagickPixel('transparent')); 
$image->readImage('somefile.svg'); 

// ... do any image manipulation you need to here ... 

$image->setImageFormat('png32'); 
$image->writeImage('somefile.png');