如何将php脚本生成的图像保存到实际的.png图像中?

如何将php脚本生成的图像保存到实际的.png图像中?,php,image,imagemagick,Php,Image,Imagemagick,如何将php构建的png图像保存为服务器上的png文件 例如,假设我的脚本image-builder-png.php生成了一个带有参数的空白框png图像: /image-builder-png.php?color=orange&width=100&height=100 如果我只是在HTML中引用此图像,这将很好: <img src="/image-builder-png.php?color=orange&width=100&height=100">

如何将php构建的png图像保存为服务器上的png文件

例如,假设我的脚本image-builder-png.php生成了一个带有参数的空白框png图像:

/image-builder-png.php?color=orange&width=100&height=100
如果我只是在HTML中引用此图像,这将很好:

<img src="/image-builder-png.php?color=orange&width=100&height=100">

但我需要将此图像传递给另一个服务器脚本,该脚本只接受标准图像文件,如
orangebox.png


因此,如何从
/image builder png.php“保存”渲染图像?color=orange&width=100&height=100
orange box.png

如果在Apache上运行,只需使用将php脚本参数屏蔽为完整路径,并更改脚本以找出动态部分

RewriteCond%{REQUEST\u FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^/image builder/(.*)$/image builder png.php?路径=$1[L,QSA]
现在,“
/image bulder/100x100/orange box.png
”的示例请求将映射到“
/image builder png.php?path=100x100/orange box.png
”。PHP脚本顶部的一个简单前言应该能够提取信息,并更正动态选项。类似于

if(isset($\u GET['path']))
{
$parts=explode(“/”,$_GET['path']);
foreach($parts作为$part)
{
如果(预匹配(“!^(?\d+)x(?\d+$!”,$part,$matches))
{
$\u GET['width']=$匹配['width'];
$\u GET['height']=$匹配['height'];
}
if(preg_match(“!^(?\w+)-box\.png$!”,$part,$matches))
{
$\u GET['color']=$匹配['color'];
}
}
}
带有
副本(“http://.../imgbuild“,”file.png“例如。或者编辑图像生成器脚本以使用带有文件名的
imagepng()