需要转换 .svg 文件并将 em 保存为 .svg 或 jpeg 格式。ImageMagick 的问题在于它将转换后的文件保存在白色背景上,而我非常需要它透明。
对其他工具或清除 php 有什么建议吗?真的很感激。
需要转换 .svg 文件并将 em 保存为 .svg 或 jpeg 格式。ImageMagick 的问题在于它将转换后的文件保存在白色背景上,而我非常需要它透明。
对其他工具或清除 php 有什么建议吗?真的很感激。
正确的 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");
?>
我怀疑您是否可以从 php.ini 轻松转换 SVG 文件。SVG文件基本上都是XML文件,而且标准是公开的,所以任何人都可以制作转换器...
我会选择外部工具,它比从脚本语言中处理更容易和更快,并且当脚本的作者实际上不知道如何找出应用程序的命令行开关时更安全,而且JPEG 文件不支持透明度:)
convert -background none somefile.svg somefile.png
像詹斯说的那样去……
你不能用 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');