У меня есть изображение на холсте в Рафаэле, и я использую клип-прямоугольник, чтобы обрезать детали, которые мне не нужны. Теперь я сгенерировал svg с плагином raphael.serialize, но я не могу заставить работать clip-rect. часть из скрипта php, которая перебирает созданный json:
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 [$ i] [" clip "].'" И clip = "'. $ Json [$ i] [" clip "].'", Но я получаю безрезультатно.
как мне заставить эту штуку работать?