将HTML画布另存为图像非常容易, 只需右键单击画布并将其另存为图像即可完成。但是将画布另存为服务器上的图像是完全不同的。本文将向你展示如何实现这一目标。有时需要在执行某些服务器处理后保存画布图像, 并且本文将有助于通过服务器发送画布图像进行处理。
在这里, 你将看到如何使用JQuery将HTML内容转换为图像。我们知道有一个html2canvas插件, 通过使用该插件, 我们可以轻松地将HTML内容转换为图像内容, 然后我们可以通过右键单击并选择save image选项来保存该文件。
之后, 我们将使用ajax将CANVAS图像转换为URL格式, 然后将其转换为服务器格式, 然后主要部分将由PHP代码完成。 PHP代码会将该图像保存在你的服务器上。
以下步骤将清楚地说明该方法。
【如何在服务器上将HTML 5 Canvas保存为图像()】第1步:HTML代码将画布转换为图像。
<
!DOCTYPE html>
<
html >
<
head >
<
title >
<
/ title >
<
link rel = "stylesheet" href =
"http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
<
script src =
"https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js" >
<
/ script >
<
script src =
"http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" >
<
/ script >
<
script src =
"https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js" >
<
/ script >
<
style >
.top {
margin-top: 20px;
}h1 {
color: green;
}input {
background-color: transparent;
border: 0px solid;
width: 300;
}body {
text-align: center;
}
<
/ style >
<
/ head >
<
body >
<
div class = "col-md-offset-4 col-md-4 col--md-offset-4 top" >
<
div id = "createImg" style = "border:1px solid;
" >
<
h1 >
lsbin<
/ h1 >
<
h4 >
How to save an HTML5 Canvas as an
image on a server?<
/ h4 >
<
input type = "text" valuehttps://www.lsbin.com/= ""
placeholder = "Enter wahtaever you want" class = "form-control" />
<
br />
<
/ div >
<
button id = "geeks" type = "button"
class = "btn btn-primary top" >
Create Image<
/ button >
<
div id = "img" style = "display:none;
" >
<
img srchttps://www.lsbin.com/= "" id = "newimg" class = "top" />
<
/ div >
<
/ div >
<
script >
$(function() {
$("#geeks").click(function() {
html2canvas($("#createImg"), {
onrendered: function(canvas) {
var imgsrc = https://www.lsbin.com/canvas.toDataURL("image/png");
console.log(imgsrc);
$("#newimg").attr('src', imgsrc);
$("#img").show();
var dataURL = canvas.toDataURL();
$.ajax({
type: "POST", url: "script.php", data: {
imgBase64: dataURL
}
}).done(function(o) {
console.log('saved');
});
}
});
});
});
<
/ script >
<
/ body >
<
/ html >
第2步:显示输出以检查画布是否已成功转换为图像。
在单击按钮之前:
文章图片
单击按钮后:
文章图片
第三步:使用canvas.toDataURL()方法将图像转换为URL格式。
var dataURL = canvas.toDataURL();
步骤4:通过Ajax将转换后的URL格式发送到你的服务器中。
$.ajax({
type: "POST" , url: "script.php" , data: {
imgBase64: dataURL
}
}).done( function (o) {
console.log( 'saved' );
});
步骤5:此php代码会将图像保存到服务器中。
<
?php// Requires php5
define( 'UPLOAD_DIR' , 'images/' );
$img = $_POST [ 'imgBase64' ];
$img = str_replace ( 'data:image/png;
base64, ' , '' , $img );
$img = str_replace ( ' ' , '+' , $img );
$data = https://www.lsbin.com/base64_decode ( $img );
$file = UPLOAD_DIR . uniqid() .'.png' ;
$success = file_put_contents ( $file , $data );
print $success ? $file : 'Unable to save the file.' ;
?>
推荐阅读
- C#中的StringBuilder用法详细指南
- 算法设计(生成n位灰度码 |set 2)
- 算法设计(求最多k次交换后的最大排列)
- 博弈论中的极小极大算法第2组(评估功能简介)
- Python示例中的Lambda和filter用法指南
- Java中的已检查与未检查异常
- R编程中的回归及其类型
- 最新YouTube用户使用的14款最佳视频编辑软件推荐合集
- 16种用于编辑右键菜单的最佳Windows 10上下文菜单编辑器合集