Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何剪切画布数据URI链接?_Javascript_Html_Canvas_Hyperlink - Fatal编程技术网

Javascript 如何剪切画布数据URI链接?

Javascript 如何剪切画布数据URI链接?,javascript,html,canvas,hyperlink,Javascript,Html,Canvas,Hyperlink,从画布到数据URL方法是否有剪切链接的方法?或者是另一种保存画布图像的方法?无论你想做什么,都应该使用合适的术语,因为我不知道“剪切链接”是什么意思,但这里有一些猜测 创建链接到图像的链接… var datauri = document.getElementById("myCanvas").toDataURL(); var link = document.createElement("a"); link.innerHTML = "Download image"; link.setAttribut

从画布
到数据URL
方法是否有剪切链接的方法?或者是另一种保存画布图像的方法?

无论你想做什么,都应该使用合适的术语,因为我不知道“剪切链接”是什么意思,但这里有一些猜测

创建链接到图像的链接…

var datauri = document.getElementById("myCanvas").toDataURL();
var link = document.createElement("a");
link.innerHTML = "Download image";
link.setAttribute("href", datauri);
document.body.appendChild(link);
在新选项卡中打开图像

var datauri = document.getElementById("myCanvas").toDataURL();
window.open(datauri, "_blank");

奖金。。。这些需要PHP,并使用我编写的库

将图像下载到用户的计算机上

在服务器上创建此PHP文件,称之为downloader.PHP:

<?php
require "EasyImage.php";
EasyImage::Create($_POST['img'])->download("yourImage.png");

我的意思是从toDataUrl()方法生成的dataURL链接看起来像:data:image/jpeg;base64、/9j/4AAQSKZJRGABAQAAAQABAD/WAFCVIHP8SPGBPVITWLPN3JDZEHDOTORE2TZBRENY2WKQOM7CGRHT+…LPN3JDZEHDOTORE2TZBRENY2WKQOM7CG,当我想将图像保存到php数据库时,我必须在phpmyadmin中使用“longtext”字段。我只是想到了另一种方法,当链接看起来像myImage.jpgar时,您是否超过了某个传输协议的传输长度?如果没有,请不要将dataURL分成块。如果是,dataURL只是一个字符串,因此您可以将其string.slice为允许大小的块。或者您可以使用其他传输协议。例如,您可以将画布内容转换为blob并将其传输。
<form href="downloader.php" method="POST" id="dlform"><input type="hidden" id="img" name="img"></form>
<script>
function downloadImage(){
    var datauri = document.getElementById("myCanvas").toDataURL();
    document.getElementById("img").value = datauri;
    document.getElementById("dlform").submit();
}
</script>