我想將畫布(它具有圖像,文本,形狀等)保存到服務器上的svg。將畫布保存爲服務器上的svg和json
實際上,我希望畫布以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格式應該是什麼樣子才能重現圖形。 – Kaiido