将画布转换为图像并保存到光盘
本文关键字:图像 保存 光盘 布转换 转换 | 更新日期: 2023-09-27 18:35:43
已经有很多类似的问题,但由于某种原因,它们不能解决我的问题。
我的项目是保存动态创建的页面(或页面的一部分)。用户可以选择在屏幕上拖动对象并以任何顺序保留它们,然后将此顺序作为图像保存到光盘中。
我自己的研究表明,我可以从JQuery使用Draggable,这很容易实现。这是我卡住的拯救部分。
我点击了几个链接,但图像似乎没有保存到光盘,我认为它在 IE 中不起作用!但是,我对FireFox很满意,因此使用toDataUrl()听起来是最好的方法。
由于我无法让它工作,我决定稍微改变策略并将值传递给后面的代码 (C#)
我的代码的保存部分看起来像
<script>
function SaveMe() {
var canvas = document.getElementById("mycanvas");
var image = canvas.toDataUrl();
document.getElementById("hideMe").value = image;
}
</script>
当我在FireBug中调试时,我从未达到document.getElementById("hideMe").value = image;
。我一步通过,但永远无法通过var image = canvas.toDataUrl();
这是预期的行为,正如我假设的那样,但没有错误消息?
我的 HTML 的正文是
<body>
<script type="text/javascript">
$(document).ready(function () {
$('.popup_click').show(0).draggable();
});
</script>
<form id="form1" runat="server">
<div class="popup_click">
<div id="popup_title">Title</div>
</div>
<canvas id="mycanvas" class="canvas"></canvas>
<asp:HiddenField ID="hideMe" runat="server" />
<asp:Button runat="server" OnClick="ClickMe" text="Click" OnClientClick="SaveMe()"/>
</form>
</body>
我做错了什么?我正在调试模式下本地工作,Visual Studio 2013。
不是绝对确定,但我过去也遇到过 todataurl() 的问题,这个链接帮助了我
在动态js中使用图像时无法获取数据url
这是我在想要将画布导出到图像时经常使用的功能,它将图像放入弹出窗口中,以便用户可以使用它做他们想做的事情(我希望这有帮助):
function imageCanvas(evt){
var imageCanvas = document.createElement('canvas');
imageCanvas.width = document.documentElement.clientWidth;
imageCanvas.height = document.documentElement.clientHeight;
var imageCanvasContext = imageCanvas.getContext("2d");
imageCanvasContext.fillStyle = document.getElementById("body").style.backgroundColor;
imageCanvasContext.fillRect(0,0,imageCanvas.width,imageCanvas.height);
imageCanvasContext.drawImage(mainCanvas,0,0,imageCanvas.width,imageCanvas.height,0,0,imageCanvas.width,imageCanvas.height);
var dataURL = imageCanvas.toDataURL("image/png");
var imagePopup = window.open("","fractalLineImage","left=0,top=0,width="+(imageCanvas.width/2)+",height="+(imageCanvas.height/2)+",toolbar=0,resizable=0");
imagePopup.document.write("<title>Export Image</title>");
imagePopup.document.write("<img id='exportImage'"
+" alt=''"
+" height='"+ imageCanvas.height+"'"
+" width='"+ imageCanvas.width+"'"
+" style='position:absolute;left:0;top:0'/>");
imagePopup.document.close();
var exportImage = imagePopup.document.getElementById("exportImage");
exportImage.src = dataURL;
}