我正在制作的工具上几乎有 一切。
首先,由于GD不支持SVG,因此我在Laravel项目中将Imagick驱动程序与Intervention Image一起使用。
我正在通过表单提交上传图像,并尝试在输出结果之前覆盖表单中还包含的一些信息。
如果我以png形式提供图标,一切都很好,但是当我尝试将insert()与 .svg 文件一起使用时,该图标不会在导出中显示。 / p>
以下是我的代码的关键部分。如上所述,如果我将swim-white.svg
更改为swim-white.png
,则下载工作正常。
$img = Image::make($request->file('fileName'))->orientate();
$img->insert(public_path() . '/images/icons/swim-white.svg', 'top-left', 80, 295);
$img->response('jpeg');
$name = Carbon::now()->toDateTimeString() . '-download.jpeg';
$headers = [
'Content-Type' => 'image/jpeg',
'Content-Disposition' => 'attachment; filename='. $name,
];
return response()->stream(function() use ($img) {
echo $img;
}, 200, $headers);
是否知道这是imagick的限制,还是我做错了什么?
注意:该文件仍会下载,但是SVG图标应为空白,而使用PNG时会显示该图标。
我想使用SVG,以便用户可以更改表单输入中文本和图标的颜色。