现在大模型比如flux的能力已经足够惊艳,所以随便练的lora比如logo和插画都有着不错的表现,但是生成出来的都是png图片,如果用到自己的设计或者网页中还是svg好点,下面简单做个png转黑白svg的效果,svg粘贴进figma、mastergo、即时设计这类设计软件或者自己代码中都很方便
准备工作
Linux服务器比如CentOS 安装
Potrace:运行sudo apt-get install potracephp安装
ImageMagick:运行sudo apt-get install imagemagick放开php函数
exec()
下面直接贴png2svg.php代码
<?php
// 检查是否有文件上传
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file']) && $_FILES['file']['error'] == UPLOAD_ERR_OK && $_FILES['file']['type'] == 'image/png') {
$pngFile = $_FILES['file']['tmp_name'];
$svgFile = tempnam(sys_get_temp_dir(), 'svg');
// 使用 ImageMagick 将 PNG 直接转换为 SVG
exec("convert $pngFile -format svg $svgFile", $output, $return_var);
// 检查 ImageMagick 命令是否成功
if ($return_var !== 0) {
echo "ImageMagick 命令执行失败。";
exit;
}
// 检查 SVG 文件是否存在且不为空
if (file_exists($svgFile) && filesize($svgFile) > 0) {
// 读取 SVG 文件内容
$svgContent = file_get_contents($svgFile);
// 提供 SVG 文件下载
header('Content-Type: image/svg+xml');
header('Content-Disposition: attachment; filename="converted.svg"');
echo $svgContent;
// 删除临时文件
unlink($svgFile);
// 终止脚本执行,防止输出 HTML 内容
exit;
} else {
echo "SVG 文件生成失败或为空。";
}
} else {
echo "请上传一个 PNG 文件。";
}
?>
<!DOCTYPE html>
<html>
<head>
<title>PNG 转 SVG</title>
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" accept="image/png">
<input type="submit" value="转换">
</form>
</body>
</html>


![ZBlog自适应自媒体博客资讯[3种布局]视频、图片、列表](https://ranzt.com/zb_users/upload/2022/06/202206081654674332210894.jpg)
