У меня есть изображение на моем холсте в Рафаэле, и я использую clip-rect для обрезки деталей, которые мне не нужны. Теперь я создал svg с плагином raphael.serialize, но я не могу получить работу с клипом. Тхет часть из PHP скрипт, который перебираем созданный JSON:свойство clip-rect raphael для получения результата на сгенерированном изображении svg
for ($i=0; $i <= count($json); $i++) {
if ($json[$i]['type'] == "image") {
$base64 = base64_encode(file_get_contents($json[$i]['src']));
$output .= '<image overflow="visible" x="'.$json[$i]["x"].'" y="'.$json[$i]["y"].'" width="'.$json[$i]["width"].'" clip-rect="'.$json[$i]["clip"].'" height="'.$json[$i]["height"].'" transform="'.$json[$i]["transform"].'" preserveAspectRatio="none" xlink:href="data:image/png;base64,'.$base64.'"></image>';
}
}
и здесь какая-то часть модифицированного плагина сериализации:
var object = {
type: node.type,
width: node.attrs['width'],
height: node.attrs['height'],
x: node.attrs['x'],
y: node.attrs['y'],
src: node.attrs['src'],
clip: node.attrs['clip-rect'],
transform: node.transformations ? node.transformations.join(' ') : ''
}
я пытался использовать Viewbox = "» $ JSON [$ я]. ["clip"]. '"и clip ="'. $ json [$ i] ["clip"]. ", но я не получаю результата.
Как я могу заставить эту работу работать?
Я изменил свой PHP-скрипт, чтобы получить 'clip-path = ''. $ Json [$ i] [" clip-rect "]. '", Но я не могу получить результат. можете ли вы дать мне некоторые рекомендации по решению моей проблемы. Я новичок в svg – gerpaick
Глядя на то, что raphael.serialize, похоже, не справляется с сериализацией клипов. Я не совсем уверен, почему автор этого расширения не просто использовал XMLSerializer на элементе svg toplevel, тогда вы получите все, что видит браузер. См. Http://stackoverflow.com/questions/227208/what-is-the-best-way-to-serialize-svg-from-the-client-dom/227754#227754 –
спасибо, но я думаю, что он не работает IE-браузеры – gerpaick