我正在创建图像编辑器类型的web应用程序。我有一个主要的div
它将包含很多div
里面。将div的内容转换为图像
当用户点击保存按钮时,我想将div
保存为文件夹中的图像。 我试着用Canvas.toDataURL()
做它,但后来我发现我不能在div标签(main div)内放置canvas标签。我也试过imagegrabscreen()
php的功能,但它在整个页面加载之前捕获了屏幕,所以它没用。
任何人都可以帮助我,并建议一种方法来实现这个使用PHP或JavaScript?
我正在创建图像编辑器类型的web应用程序。我有一个主要的div
它将包含很多div
里面。将div的内容转换为图像
当用户点击保存按钮时,我想将div
保存为文件夹中的图像。 我试着用Canvas.toDataURL()
做它,但后来我发现我不能在div标签(main div)内放置canvas标签。我也试过imagegrabscreen()
php的功能,但它在整个页面加载之前捕获了屏幕,所以它没用。
任何人都可以帮助我,并建议一种方法来实现这个使用PHP或JavaScript?
为什么你使用一堆div
当你可以只使用一个canvas
并使用适当的画布功能绘制它?
有plenty of examples你想要做什么,如this one。
我不想让油漆像东西。我正在使用一些包含多个图像和文本的div,用户可以编辑它们,然后将其保存为图像。 – shubhi1910
那么,你可以把这些'div's绘制在画布上。 –
use this code to save image from canvas
function save_canvas_img()
{
var canvas = document.getElementById("your id");
var canvasData = canvas.toDataURL("image/png");
var ajax = new XMLHttpRequest();
ajax.open("POST",'save.php',false);
ajax.setRequestHeader('Content-Type', 'application/your page name');
ajax.send(canvasData);
alert('You have successfully saved this image');
}`enter code here`
here save.php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
$imageData=$GLOBALS['HTTP_RAW_POST_DATA'];
$filteredData=substr($imageData, strpos($imageData, ",")+1);
$unencodedData=base64_decode($filteredData);
// Need to decode before saving since the data we received is already base64 encoded
//echo "unencodedData".$unencodedData;
$randomName = mktime(). rand(99999,9999999). '.png';
$fp = fopen('foldername/'.$randomName, 'wb');
fwrite($fp, $unencodedData);
fclose($fp);}`enter code here`
如果你想利用你的主要DIV的“截图”看看下面的链接
imagegrabscreen抓住服务器的截图,所以我猜测你正在使用http:// localhost对服务器本身进行操作? – lostsource