【发布时间】:2018-03-04 19:21:30
【问题描述】:
我想将画布(它有图像、文本、形状等)保存到服务器上的 svg。
实际上我希望画布以 3 种格式保存画布 - png 文件、svg 文件和 JSON 文件。
这是我的画布到 png 代码:
jquery:
jQuery(document).ready(function(){
jQuery('#btnSave').click(function(){
var pic =document.getElementById("myCanvas").toDataURL('image/png');
$.ajax({
type: "POST",
url: "script.php",
data: {
img: pic
}
}).done(function(o) {
console.log('saved');
});
});
});
php代码(script.php):
if (isset($_POST['img'])) {
define('UPLOAD_DIR', 'uploaddesign/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
}
任何人都知道如何以其他两种格式保存画布,svg 和 json:
【问题讨论】:
-
您可能希望将所有画布绘图(路径声明等)保存在某个 js 对象中,以便能够将整体保存为 svg 或 json。一些 camvas 库提供此功能(例如 fabricjs),但您必须从一开始就使用它们。如果你不使用库,那么只有你知道 json 格式应该是什么样子才能重现图纸。
标签: php jquery json canvas svg