首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DOM将屏幕截图创建为PNG文件。

DOM将屏幕截图创建为PNG文件。
EN

Stack Overflow用户
提问于 2014-07-01 03:11:28
回答 2查看 106关注 0票数 0

我正在使用html2canvas.js创建一个网页的截图。唯一的问题是,我不知道如何将这些数据传输到图像文件格式中,以便将其保存并链接到数据库中。

这是我目前的代码:

代码语言:javascript
运行
复制
<script language="Javascript">
    setInterval(function() {
        html2canvas(document.body, {
            onrendered: function(canvas2) {
                context.drawImage(video, 0, 0, 240, 180);
                $.post(
                    "' . self::get_link('save_screenshots') . '",
                    "user_id=' . module_security::get_loggedin_id() .
                    '&screenshot=" + encodeURI(canvas2.toDataURL())
                );
                document.body.appendChild(canvas2)
            }
        })
    }, 1*60*1000);
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-01 03:37:58

这可能对你有帮助:

代码语言:javascript
运行
复制
<?php
    // requires php5
    define('UPLOAD_DIR', 'your/images/directory/');
    $img = $_POST['img'];
    $img = str_replace('data:image/png;base64,', '', $img);
    $img = str_replace(' ', '+', $img);
    $data = base64_decode($img);
    $img_file = UPLOAD_DIR . uniqid() . '.png';
    $success = file_put_contents($img_file, $data);
    if($img_file){
        // store the link to database
    } else{
       //return error msg
    }

?>
票数 0
EN

Stack Overflow用户

发布于 2014-07-01 03:45:15

您应该让jQuery为您处理请求编码:

代码语言:javascript
运行
复制
$.post(url, {
    user_id: 123,
    screenshot: canvas2.toDataURL()
}, function() {
    // success
    document.body.appendChild(canvas2);
});

然后,在服务器端像这样解码它:

代码语言:javascript
运行
复制
$data = base64_decode(substr(
    $_POST['screenshot'], 
    strpos($_POST['screenshot'], ',') + 1
));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24501958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档