Как вставить lo go (lo go - изображение в формате .png) в другое изображение (изображение в формате .svg) в php - PullRequest
0 голосов
/ 16 января 2020

Я хочу интегрировать lo go (.png) в другой файл изображения (.svg). Я хотел бы знать, возможно ли использовать php?

Я использую это, но это не работает.

<image x="0" y="0" width="10" height="10" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://bellard.org/bpg/2.png" onclick="this.setAttributeNS('http://www.w3.org/1999/xlink', 'href', 'http://pngimg.com/uploads/polar_bear/polar_bear_PNG23514.png')">
  </image>

Я преобразовал файл .osm в .svg и теперь мне нужно интегрировать lo go в этот файл .svg, когда я вручную ввожу тег изображения внутри этого SVG-файла, который отображается в chrome, но не отражается в средстве просмотра изображений. Так есть ли способ или документация для этого?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 20 января 2020

publi c функция imageEmmbed (запрос $ request) {

$file = $request->file('file');
$svg_data = file_get_contents($file);
$svg = new \SimpleXMLElement($svg_data, LIBXML_NOEMPTYTAG);
$svg->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg');

$g_res= $svg->addChild("text", "COPYRIGHT @ 2020");
$g_res->addAttribute("x", "150");
$g_res->addAttribute("y", "220");
$g_res->addAttribute("font-family", "Verdana");
$g_res->addAttribute("font-size", "10");
$g_res->addAttribute("fill", "red");

$g_res = $svg->addChild("image","1");
$g_res->addAttribute("x", "0");
$g_res->addAttribute("y", "0");
$g_res->addAttribute("width", "50");
$g_res->addAttribute("height", "50");
$g_res->addAttribute("xlink", 'http://www.w3.org/1999/xlink');
$g_res['xlink:href'] = "enter your base64 image here.";
$g_res->addAttribute("onclick", "this.setAttributeNS('http://www.w3.org/1999/xlink')");

$dom_res = dom_import_simplexml($g_res);
$dom_svg = dom_import_simplexml($svg);
$dom_svg->formatOutput = true;
$dom_svg->appendChild($dom_res);

echo $svg->saveXML(public_path('image/test.svg'));

}

...