Я пытаюсь создать сайт, на котором вы можете нарисовать изображение поверх другого изображения, используя Raphael.js. Детали чертежа закончены, и я могу экспортировать строки в виде png. Я вставляю изображения в SVG raphael, генерируя функцию paper.image()
; К сожалению, моя функция экспорта не включает импортированное изображение.экспорт SVG в PNG с изображением внутри SVG
Это скрипты, которые я использую, но я не думаю, что использую их все.
<script src="../jquery-2.0.1.min.js"></script>
<script src="raphael-min.js"></script>
<script src="rgbcolor.js"></script>
<script src="canvg.js"></script>
<script src="StackBlur.js"></script>
<script src="svg.min.js"></script>
Вот экспорт функция $ ('# сохранить'). OnMouseDown ...
var canvas = document.getElementById('canvas2');
var svg = document.getElementById('canvas');
svg = svg.innerHTML;
canvg(canvas, svg);
var img_url = canvas.toDataURL('image/png');
$('#converted_image').attr('src', img_url);
var img = canvas.toDataURL("image/png");
document.write('<img src="'+img+'"/>');
Вот как я импортировать изображения с помощью кнопки, которая представляет собой изображение $('#img1').onmousedown
...
paper.clear();
var c = paper.image("images/img1.png", 10, 10, 200, 200);
Вот как выглядит результат в домике с изображением и белой линией в качестве примера.
<div id="canvas">
<svg height="300" version="1.1" width="300"
xmlns="http://www.w3.org/2000/svg"
style="overflow: hidden; position: relative; " id="canvassvg">
<desc>Created with Raphaël 2.1.0</desc>
<defs></defs>
<image x="10" y="10" width="200" height="200"
preserveAspectRatio="none" href="images/img1.png">
</image>
<path style="stroke-linecap: round; stroke-linejoin: round; "
fill="none" stroke="#ffffff"
d="M383,201L383,201L383,202L383,203"
stroke-linecap="round" stroke-linejoin="round" stroke-width="4">
</path>
</svg>
</div>
Спасибо за любой ответ, и, пожалуйста, извините, мой английский.
если вы добавите jsfiddle было бы полезно – Brian