借助 PHP - Image Magick 转换 .SVG 图像

发布于 2024-09-07 12:34:21 字数 124 浏览 5 评论 0原文

需要转换 .svg 文件并将其保存为 .svg 或 jpeg 格式。 ImageMagick 的问题是它在白色背景上保存转换后的文件,而我非常需要它在透明背景上。

对其他工具或清晰的 php 有什么建议吗?真的很感激。

There's a need to transform .svg files and save em either in .svg or jpeg format. The problems with ImageMagick is that it saves transformed files on white background and I deadly need it on transparent.

Any suggestions with other tools or clear php? Would really appreciate it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

月朦胧 2024-09-14 12:34:21

正确的 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");
?>

The right ImageMagick command should be:

convert -background none somefile.svg somefile.png

You should use PNG or GIF as file format, because JPEG doesn't support transparency.

To use it in PHP:

<?php
$svg_file_name = "somefile.svg";
$png_file_name = "somefile.png;
system("convert -background none $svg_file_name $png_file_name");
?>
薄荷→糖丶微凉 2024-09-14 12:34:21

我怀疑你能否在 php 中轻松转换 SVG 文件。 SVG 文件基本上是 XML 文件,并且标准是公开的,因此任何人都可以制作转换器...

我会选择外部工具,它比在脚本语言中进行处理更容易、更快,而且当作者编写时更安全脚本的实际不知道如何找到应用程序的命令行开关,并且 JPEG 文件不支持透明度:)

转到 convert -background none somefile.svg somefile.png 作为延斯说……

I doubt you can transform SVG files easily from within php. SVG files are basically XML files, and the standard is public, so anyone can make a converter...

I'd go for the external tool, it's easier and faster than processing from within a scripted language, and a lot safer when the author of the script dosen't actually know how to find out the command line switches for an application, and that JPEG files does not support transparency:)

go for convert -background none somefile.svg somefile.png as Jens said...

尸血腥色 2024-09-14 12:34:21

您无法使用 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');

You can't do transparency with JPEG, but here's how to save an SVG as a PNG with a transparent background...

$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');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文